93 lines
2.6 KiB
YAML
93 lines
2.6 KiB
YAML
|
|
# Internal registry access - no mTLS, Forgejo handles auth via imagePullSecret
|
||
|
|
# Only accessible via cluster-internal DNS (no external-dns annotation)
|
||
|
|
apiVersion: kubernetes.crossplane.io/v1alpha2
|
||
|
|
kind: Object
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-certificate
|
||
|
|
namespace: crossplane-system
|
||
|
|
spec:
|
||
|
|
providerConfigRef:
|
||
|
|
name: kubernetes-provider
|
||
|
|
forProvider:
|
||
|
|
manifest:
|
||
|
|
apiVersion: cert-manager.io/v1
|
||
|
|
kind: Certificate
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-tls
|
||
|
|
namespace: emissary
|
||
|
|
spec:
|
||
|
|
secretName: registry-internal-tls
|
||
|
|
issuerRef:
|
||
|
|
name: letsencrypt-dns
|
||
|
|
kind: ClusterIssuer
|
||
|
|
dnsNames:
|
||
|
|
- registry-internal.nge6.com
|
||
|
|
---
|
||
|
|
# Host without external-dns - only reachable if you know the IP
|
||
|
|
apiVersion: kubernetes.crossplane.io/v1alpha2
|
||
|
|
kind: Object
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-host
|
||
|
|
namespace: crossplane-system
|
||
|
|
spec:
|
||
|
|
providerConfigRef:
|
||
|
|
name: kubernetes-provider
|
||
|
|
forProvider:
|
||
|
|
manifest:
|
||
|
|
apiVersion: getambassador.io/v2
|
||
|
|
kind: Host
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-host
|
||
|
|
namespace: emissary
|
||
|
|
annotations:
|
||
|
|
external-dns.ambassador-service: emissary-ingress.emissary.svc.cluster.local
|
||
|
|
external-dns.alpha.kubernetes.io/target: 212.2.241.28
|
||
|
|
spec:
|
||
|
|
hostname: registry-internal.nge6.com
|
||
|
|
tlsSecret:
|
||
|
|
name: registry-internal-tls
|
||
|
|
---
|
||
|
|
# Mapping direct to Forgejo - no Pomerium, no mTLS
|
||
|
|
apiVersion: kubernetes.crossplane.io/v1alpha2
|
||
|
|
kind: Object
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-mapping
|
||
|
|
namespace: crossplane-system
|
||
|
|
spec:
|
||
|
|
providerConfigRef:
|
||
|
|
name: kubernetes-provider
|
||
|
|
forProvider:
|
||
|
|
manifest:
|
||
|
|
apiVersion: getambassador.io/v2
|
||
|
|
kind: Mapping
|
||
|
|
metadata:
|
||
|
|
name: registry-internal-mapping
|
||
|
|
namespace: emissary
|
||
|
|
spec:
|
||
|
|
host: registry-internal.nge6.com
|
||
|
|
prefix: /
|
||
|
|
service: http://forgejo-http.forgejo.svc.cluster.local:3000
|
||
|
|
timeout_ms: 300000
|
||
|
|
connect_timeout_ms: 10000
|
||
|
|
---
|
||
|
|
# imagePullSecret for argo namespace
|
||
|
|
apiVersion: kubernetes.crossplane.io/v1alpha2
|
||
|
|
kind: Object
|
||
|
|
metadata:
|
||
|
|
name: argo-registry-pull-secret
|
||
|
|
namespace: crossplane-system
|
||
|
|
spec:
|
||
|
|
providerConfigRef:
|
||
|
|
name: kubernetes-provider
|
||
|
|
forProvider:
|
||
|
|
manifest:
|
||
|
|
apiVersion: v1
|
||
|
|
kind: Secret
|
||
|
|
metadata:
|
||
|
|
name: forgejo-registry
|
||
|
|
namespace: argo
|
||
|
|
type: kubernetes.io/dockerconfigjson
|
||
|
|
stringData:
|
||
|
|
.dockerconfigjson: |
|
||
|
|
{"auths":{"registry-internal.nge6.com":{"username":"eemoore","password":"testpassword123!","auth":"ZWVtb29yZTp0ZXN0cGFzc3dvcmQxMjMh"}}}
|