feat: update network and cert-manager ns (#1263)
* feat: update network and cert-manager ns Signed-off-by: Devin Buhl <devin@buhl.casa> * fix: update sops var name to be consistent with env Signed-off-by: Devin Buhl <devin@buhl.casa> --------- Signed-off-by: Devin Buhl <devin@buhl.casa>
This commit is contained in:
1 parent
4ac206aef5
commit
3b0fcb7ba5
27 files changed
+122
-106
No files matched your search
@@ -18,14 +18,14 @@ tasks:
|
|||||||
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/{{.PROMETHEUS_OPERATOR_VERSION}}/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
|
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/{{.PROMETHEUS_OPERATOR_VERSION}}/example/prometheus-operator-crd/monitoring.coreos.com_scrapeconfigs.yaml
|
||||||
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/{{.PROMETHEUS_OPERATOR_VERSION}}/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename https://raw.githubusercontent.com/prometheus-operator/prometheus-operator/{{.PROMETHEUS_OPERATOR_VERSION}}/example/prometheus-operator-crd/monitoring.coreos.com_servicemonitors.yaml
|
||||||
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --kustomize {{.KUBERNETES_DIR}}/bootstrap
|
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --kustomize {{.KUBERNETES_DIR}}/bootstrap
|
||||||
- cat {{.SOPS_AGE_FILE}} | kubectl -n flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin
|
- cat {{.SOPS_AGE_KEY_FILE}} | kubectl -n flux-system create secret generic sops-age --from-file=age.agekey=/dev/stdin
|
||||||
- sops --decrypt {{.CLUSTER_SECRET_SOPS_FILE}} | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
- sops --decrypt {{.CLUSTER_SECRET_SOPS_FILE}} | kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename -
|
||||||
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename {{.CLUSTER_SETTINGS_FILE}}
|
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --filename {{.CLUSTER_SETTINGS_FILE}}
|
||||||
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --kustomize {{.KUBERNETES_DIR}}/flux/config
|
- kubectl apply --kubeconfig {{.KUBECONFIG_FILE}} --server-side --kustomize {{.KUBERNETES_DIR}}/flux/config
|
||||||
preconditions:
|
preconditions:
|
||||||
- { msg: "Missing kubeconfig", sh: "test -f {{.KUBECONFIG_FILE}}" }
|
- { msg: "Missing kubeconfig", sh: "test -f {{.KUBECONFIG_FILE}}" }
|
||||||
- { msg: "Flux already installed", sh: "kubectl get namespace flux-system --kubeconfig {{.KUBECONFIG_FILE}} &>/dev/null && exit 1 || exit 0" }
|
- { msg: "Flux already installed", sh: "kubectl get namespace flux-system --kubeconfig {{.KUBECONFIG_FILE}} &>/dev/null && exit 1 || exit 0" }
|
||||||
- { msg: "Missing Sops Age key file", sh: "test -f {{.SOPS_AGE_FILE}}" }
|
- { msg: "Missing Sops Age key file", sh: "test -f {{.SOPS_AGE_KEY_FILE}}" }
|
||||||
|
|
||||||
apply:
|
apply:
|
||||||
desc: Apply a Flux Kustomization resource for a cluster
|
desc: Apply a Flux Kustomization resource for a cluster
|
||||||
|
|||||||
@@ -9,9 +9,9 @@ tasks:
|
|||||||
|
|
||||||
age-keygen:
|
age-keygen:
|
||||||
desc: Initialize Age Key for Sops
|
desc: Initialize Age Key for Sops
|
||||||
cmd: age-keygen --output {{.SOPS_AGE_FILE}}
|
cmd: age-keygen --output {{.SOPS_AGE_KEY_FILE}}
|
||||||
status:
|
status:
|
||||||
- test -f "{{.SOPS_AGE_FILE}}"
|
- test -f "{{.SOPS_AGE_KEY_FILE}}"
|
||||||
|
|
||||||
encrypt:
|
encrypt:
|
||||||
desc: Encrypt all Kubernetes SOPS secrets that are not already encrypted
|
desc: Encrypt all Kubernetes SOPS secrets that are not already encrypted
|
||||||
@@ -31,7 +31,7 @@ tasks:
|
|||||||
vars: ["file"]
|
vars: ["file"]
|
||||||
preconditions:
|
preconditions:
|
||||||
- { msg: "Missing Sops config file", sh: "test -f {{.SOPS_CONFIG_FILE}}" }
|
- { msg: "Missing Sops config file", sh: "test -f {{.SOPS_CONFIG_FILE}}" }
|
||||||
- { msg: "Missing Sops Age key file", sh: "test -f {{.SOPS_AGE_FILE}}" }
|
- { msg: "Missing Sops Age key file", sh: "test -f {{.SOPS_AGE_KEY_FILE}}" }
|
||||||
|
|
||||||
.reset:
|
.reset:
|
||||||
internal: true
|
internal: true
|
||||||
|
|||||||
@@ -455,7 +455,7 @@ _Mic check, 1, 2_ - In a few moments applications should be lighting up like Chr
|
|||||||
|
|
||||||
#### 🌐 Public DNS
|
#### 🌐 Public DNS
|
||||||
|
|
||||||
The `external-dns` application created in the `networking` namespace will handle creating public DNS records. By default, `echo-server` and the `flux-webhook` are the only subdomains reachable from the public internet. In order to make additional applications public you must set set the correct ingress class name and ingress annotations like in the HelmRelease for `echo-server`.
|
The `external-dns` application created in the `networking` namespace will handle creating public DNS records. By default, `echo-server-external` and the `flux-webhook` are the only subdomains reachable from the public internet. In order to make additional applications public you must set set the correct ingress class name and ingress annotations like in the HelmRelease for `echo-server`.
|
||||||
|
|
||||||
#### 🏠 Home DNS
|
#### 🏠 Home DNS
|
||||||
|
|
||||||
@@ -469,7 +469,7 @@ The `external-dns` application created in the `networking` namespace will handle
|
|||||||
> server=/${bootstrap_cloudflare_domain}/${bootstrap_k8s_gateway_addr}
|
> server=/${bootstrap_cloudflare_domain}/${bootstrap_k8s_gateway_addr}
|
||||||
> ```
|
> ```
|
||||||
> 2. Restart dnsmasq on the server.
|
> 2. Restart dnsmasq on the server.
|
||||||
> 3. Query an internal-only subdomain from your workstation (any `internal` class ingresses): `dig @${home-dns-server-ip} hubble.${bootstrap_cloudflare_domain}`. It should resolve to `${bootstrap_internal_ingress_addr}`.
|
> 3. Query an internal-only subdomain from your workstation (any `internal` class ingresses): `dig @${home-dns-server-ip} echo-server-internal.${bootstrap_cloudflare_domain}`. It should resolve to `${bootstrap_internal_ingress_addr}`.
|
||||||
|
|
||||||
If you're having trouble with DNS be sure to check out these two GitHub discussions: [Internal DNS](https://github.com/onedr0p/flux-cluster-template/discussions/719) and [Pod DNS resolution broken](https://github.com/onedr0p/flux-cluster-template/discussions/635).
|
If you're having trouble with DNS be sure to check out these two GitHub discussions: [Internal DNS](https://github.com/onedr0p/flux-cluster-template/discussions/719) and [Pod DNS resolution broken](https://github.com/onedr0p/flux-cluster-template/discussions/635).
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -13,7 +13,7 @@ vars:
|
|||||||
KUBECONFIG_FILE: "{{.ROOT_DIR}}/kubeconfig"
|
KUBECONFIG_FILE: "{{.ROOT_DIR}}/kubeconfig"
|
||||||
MAKEJINJA_CONFIG_FILE: "{{.ROOT_DIR}}/makejinja.toml"
|
MAKEJINJA_CONFIG_FILE: "{{.ROOT_DIR}}/makejinja.toml"
|
||||||
PIP_REQUIREMENTS_FILE: "{{.ROOT_DIR}}/requirements.txt"
|
PIP_REQUIREMENTS_FILE: "{{.ROOT_DIR}}/requirements.txt"
|
||||||
SOPS_AGE_FILE: "{{.ROOT_DIR}}/age.key"
|
SOPS_AGE_KEY_FILE: "{{.ROOT_DIR}}/age.key"
|
||||||
# Binaries
|
# Binaries
|
||||||
PYTHON_BIN: python3
|
PYTHON_BIN: python3
|
||||||
# Python
|
# Python
|
||||||
|
|||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,23 @@
|
|||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app cert-manager-issuers
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: cert-manager
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: cert-manager
|
||||||
|
path: ./kubernetes/apps/cert-manager/cert-manager-issuers/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: true
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
@@ -18,25 +18,3 @@ spec:
|
|||||||
interval: 30m
|
interval: 30m
|
||||||
retryInterval: 1m
|
retryInterval: 1m
|
||||||
timeout: 5m
|
timeout: 5m
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: &app cert-manager-issuers
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
targetNamespace: cert-manager
|
|
||||||
commonMetadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: *app
|
|
||||||
dependsOn:
|
|
||||||
- name: cert-manager
|
|
||||||
path: ./kubernetes/apps/cert-manager/cert-manager/issuers
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: home-kubernetes
|
|
||||||
wait: true
|
|
||||||
interval: 30m
|
|
||||||
retryInterval: 1m
|
|
||||||
timeout: 5m
|
|
||||||
@@ -4,3 +4,4 @@ kind: Kustomization
|
|||||||
resources:
|
resources:
|
||||||
- ./namespace.yaml
|
- ./namespace.yaml
|
||||||
- ./cert-manager/ks.yaml
|
- ./cert-manager/ks.yaml
|
||||||
|
- ./cert-manager-issuers/ks.yaml
|
||||||
@@ -11,3 +11,4 @@ resources:
|
|||||||
#% if bootstrap_distribution in ['k0s', 'talos'] %#
|
#% if bootstrap_distribution in ['k0s', 'talos'] %#
|
||||||
- ./spegel/ks.yaml
|
- ./spegel/ks.yaml
|
||||||
#% endif %#
|
#% endif %#
|
||||||
|
- ./reloader/ks.yaml
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app certificates
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: network
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: cert-manager-issuers
|
||||||
|
path: ./kubernetes/apps/network/certificates/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: true
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
@@ -1,14 +1,10 @@
|
|||||||
---
|
---
|
||||||
originRequest:
|
originRequest:
|
||||||
http2Origin: true
|
originServerName: "external.${SECRET_DOMAIN}"
|
||||||
|
|
||||||
ingress:
|
ingress:
|
||||||
- hostname: "${SECRET_DOMAIN}"
|
- hostname: "${SECRET_DOMAIN}"
|
||||||
service: https://nginx-external-controller.network.svc.cluster.local:443
|
service: https://nginx-external-controller.network.svc.cluster.local:443
|
||||||
originRequest:
|
|
||||||
originServerName: "external.${SECRET_DOMAIN}"
|
|
||||||
- hostname: "*.${SECRET_DOMAIN}"
|
- hostname: "*.${SECRET_DOMAIN}"
|
||||||
service: https://nginx-external-controller.network.svc.cluster.local:443
|
service: https://nginx-external-controller.network.svc.cluster.local:443
|
||||||
originRequest:
|
|
||||||
originServerName: "external.${SECRET_DOMAIN}"
|
|
||||||
- service: http_status:404
|
- service: http_status:404
|
||||||
@@ -38,6 +38,7 @@ spec:
|
|||||||
NO_AUTOUPDATE: "true"
|
NO_AUTOUPDATE: "true"
|
||||||
TUNNEL_CRED_FILE: /etc/cloudflared/creds/credentials.json
|
TUNNEL_CRED_FILE: /etc/cloudflared/creds/credentials.json
|
||||||
TUNNEL_METRICS: 0.0.0.0:8080
|
TUNNEL_METRICS: 0.0.0.0:8080
|
||||||
|
TUNNEL_ORIGIN_ENABLE_HTTP2: true
|
||||||
TUNNEL_TRANSPORT_PROTOCOL: quic
|
TUNNEL_TRANSPORT_PROTOCOL: quic
|
||||||
TUNNEL_POST_QUANTUM: true
|
TUNNEL_POST_QUANTUM: true
|
||||||
TUNNEL_ID:
|
TUNNEL_ID:
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ spec:
|
|||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: *app
|
app.kubernetes.io/name: *app
|
||||||
dependsOn:
|
dependsOn:
|
||||||
|
- name: certificates
|
||||||
- name: external-dns
|
- name: external-dns
|
||||||
path: ./kubernetes/apps/network/cloudflared/app
|
path: ./kubernetes/apps/network/cloudflared/app
|
||||||
prune: true
|
prune: true
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ spec:
|
|||||||
values:
|
values:
|
||||||
controllers:
|
controllers:
|
||||||
main:
|
main:
|
||||||
replicas: 2
|
|
||||||
strategy: RollingUpdate
|
strategy: RollingUpdate
|
||||||
containers:
|
containers:
|
||||||
main:
|
main:
|
||||||
@@ -66,12 +65,27 @@ spec:
|
|||||||
port: *port
|
port: *port
|
||||||
ingress:
|
ingress:
|
||||||
main:
|
main:
|
||||||
|
enabled: false
|
||||||
|
external:
|
||||||
enabled: true
|
enabled: true
|
||||||
className: external
|
className: external
|
||||||
annotations:
|
annotations:
|
||||||
external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}"
|
external-dns.alpha.kubernetes.io/target: "external.${SECRET_DOMAIN}"
|
||||||
hosts:
|
hosts:
|
||||||
- host: &host "{{ .Release.Name }}.${SECRET_DOMAIN}"
|
- host: &host "{{ .Release.Name }}-external.${SECRET_DOMAIN}"
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
service:
|
||||||
|
name: main
|
||||||
|
port: http
|
||||||
|
tls:
|
||||||
|
- hosts:
|
||||||
|
- *host
|
||||||
|
internal:
|
||||||
|
enabled: true
|
||||||
|
className: internal
|
||||||
|
hosts:
|
||||||
|
- host: &host "{{ .Release.Name }}-internal.${SECRET_DOMAIN}"
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
service:
|
service:
|
||||||
|
|||||||
@@ -3,8 +3,10 @@ apiVersion: kustomize.config.k8s.io/v1beta1
|
|||||||
kind: Kustomization
|
kind: Kustomization
|
||||||
resources:
|
resources:
|
||||||
- ./namespace.yaml
|
- ./namespace.yaml
|
||||||
|
- ./certificates/ks.yaml
|
||||||
- ./cloudflared/ks.yaml
|
- ./cloudflared/ks.yaml
|
||||||
- ./echo-server/ks.yaml
|
- ./echo-server/ks.yaml
|
||||||
- ./external-dns/ks.yaml
|
- ./external-dns/ks.yaml
|
||||||
- ./k8s-gateway/ks.yaml
|
- ./k8s-gateway/ks.yaml
|
||||||
- ./nginx/ks.yaml
|
- ./nginx-external/ks.yaml
|
||||||
|
- ./nginx-internal/ks.yaml
|
||||||
File renamed without changes.
File renamed without changes.
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app nginx-external
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: network
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: certificates
|
||||||
|
path: ./kubernetes/apps/network/nginx-external/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: false
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
+1
-2
@@ -3,7 +3,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2
|
|||||||
kind: HelmRelease
|
kind: HelmRelease
|
||||||
metadata:
|
metadata:
|
||||||
name: nginx-internal
|
name: nginx-internal
|
||||||
namespace: &namespace network
|
namespace: network
|
||||||
spec:
|
spec:
|
||||||
interval: 30m
|
interval: 30m
|
||||||
chart:
|
chart:
|
||||||
@@ -29,7 +29,6 @@ spec:
|
|||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
service:
|
service:
|
||||||
annotations:
|
annotations:
|
||||||
external-dns.alpha.kubernetes.io/hostname: "internal.${SECRET_DOMAIN}"
|
|
||||||
io.cilium/lb-ipam-ips: "#{ bootstrap_internal_ingress_addr }#"
|
io.cilium/lb-ipam-ips: "#{ bootstrap_internal_ingress_addr }#"
|
||||||
externalTrafficPolicy: Cluster
|
externalTrafficPolicy: Cluster
|
||||||
ingressClassResource:
|
ingressClassResource:
|
||||||
File renamed without changes.
@@ -0,0 +1,22 @@
|
|||||||
|
---
|
||||||
|
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
||||||
|
kind: Kustomization
|
||||||
|
metadata:
|
||||||
|
name: &app nginx-internal
|
||||||
|
namespace: flux-system
|
||||||
|
spec:
|
||||||
|
targetNamespace: network
|
||||||
|
commonMetadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: *app
|
||||||
|
dependsOn:
|
||||||
|
- name: certificates
|
||||||
|
path: ./kubernetes/apps/network/nginx-internal/app
|
||||||
|
prune: true
|
||||||
|
sourceRef:
|
||||||
|
kind: GitRepository
|
||||||
|
name: home-kubernetes
|
||||||
|
wait: false
|
||||||
|
interval: 30m
|
||||||
|
retryInterval: 1m
|
||||||
|
timeout: 5m
|
||||||
@@ -1,66 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: &app nginx-certificates
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
targetNamespace: network
|
|
||||||
commonMetadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: *app
|
|
||||||
dependsOn:
|
|
||||||
- name: cert-manager-issuers
|
|
||||||
path: ./kubernetes/apps/network/nginx/certificates
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: home-kubernetes
|
|
||||||
wait: true
|
|
||||||
interval: 30m
|
|
||||||
retryInterval: 1m
|
|
||||||
timeout: 5m
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: &app nginx-external
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
targetNamespace: network
|
|
||||||
commonMetadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: *app
|
|
||||||
dependsOn:
|
|
||||||
- name: nginx-certificates
|
|
||||||
path: ./kubernetes/apps/network/nginx/external
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: home-kubernetes
|
|
||||||
wait: false
|
|
||||||
interval: 30m
|
|
||||||
retryInterval: 1m
|
|
||||||
timeout: 5m
|
|
||||||
---
|
|
||||||
apiVersion: kustomize.toolkit.fluxcd.io/v1
|
|
||||||
kind: Kustomization
|
|
||||||
metadata:
|
|
||||||
name: &app nginx-internal
|
|
||||||
namespace: flux-system
|
|
||||||
spec:
|
|
||||||
targetNamespace: network
|
|
||||||
commonMetadata:
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/name: *app
|
|
||||||
dependsOn:
|
|
||||||
- name: nginx-certificates
|
|
||||||
path: ./kubernetes/apps/network/nginx/internal
|
|
||||||
prune: true
|
|
||||||
sourceRef:
|
|
||||||
kind: GitRepository
|
|
||||||
name: home-kubernetes
|
|
||||||
wait: false
|
|
||||||
interval: 30m
|
|
||||||
retryInterval: 1m
|
|
||||||
timeout: 5m
|
|
||||||
Reference in new issue
Block a user