158 lines
8.7 KiB
Markdown
158 lines
8.7 KiB
Markdown
![]() |
+++
|
||
|
title = "CNOE"
|
||
|
weight = 4
|
||
|
+++
|
||
|
|
||
|
|
||
|
* https://cnoe.io/docs/intro
|
||
|
|
||
|
> The goal for the CNOE framework is to bring together a cohort of enterprises operating at the same scale so that they can navigate their operational technology decisions together, de-risk their tooling bets, coordinate contribution, and offer guidance to large enterprises on which CNCF technologies to use together to achieve the best cloud efficiencies.
|
||
|
|
||
|
### Aussprache
|
||
|
|
||
|
* Englisch Kuh.noo,
|
||
|
* also 'Kanu' im Deutschen
|
||
|
|
||
|
|
||
|
## Architecture
|
||
|
|
||
|

|
||
|
|
||
|
## Run the CNOEs reference implementation
|
||
|
|
||
|
See https://cnoe.io/docs/reference-implementation/integrations/reference-impl:
|
||
|
|
||
|
```bash
|
||
|
# in a local terminal with docker and kind
|
||
|
idpbuilder create --use-path-routing --log-level debug --package-dir https://github.com/cnoe-io/stacks//ref-implementation
|
||
|
```
|
||
|
### Output
|
||
|
|
||
|
```bash
|
||
|
time=2024-08-05T14:48:33.348+02:00 level=INFO msg="Creating kind cluster" logger=setup
|
||
|
time=2024-08-05T14:48:33.371+02:00 level=INFO msg="Runtime detected" logger=setup provider=docker
|
||
|
########################### Our kind config ############################
|
||
|
# Kind kubernetes release images https://github.com/kubernetes-sigs/kind/releases
|
||
|
kind: Cluster
|
||
|
apiVersion: kind.x-k8s.io/v1alpha4
|
||
|
nodes:
|
||
|
- role: control-plane
|
||
|
image: "kindest/node:v1.29.2"
|
||
|
kubeadmConfigPatches:
|
||
|
- |
|
||
|
kind: InitConfiguration
|
||
|
nodeRegistration:
|
||
|
kubeletExtraArgs:
|
||
|
node-labels: "ingress-ready=true"
|
||
|
extraPortMappings:
|
||
|
- containerPort: 443
|
||
|
hostPort: 8443
|
||
|
protocol: TCP
|
||
|
|
||
|
containerdConfigPatches:
|
||
|
- |-
|
||
|
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."gitea.cnoe.localtest.me:8443"]
|
||
|
endpoint = ["https://gitea.cnoe.localtest.me"]
|
||
|
[plugins."io.containerd.grpc.v1.cri".registry.configs."gitea.cnoe.localtest.me".tls]
|
||
|
insecure_skip_verify = true
|
||
|
|
||
|
######################### config end ############################
|
||
|
time=2024-08-05T14:48:33.394+02:00 level=INFO msg="Creating kind cluster" logger=setup cluster=localdev
|
||
|
time=2024-08-05T14:48:53.680+02:00 level=INFO msg="Done creating cluster" logger=setup cluster=localdev
|
||
|
time=2024-08-05T14:48:53.905+02:00 level=DEBUG+3 msg="Getting Kube config" logger=setup
|
||
|
time=2024-08-05T14:48:53.908+02:00 level=DEBUG+3 msg="Getting Kube client" logger=setup
|
||
|
time=2024-08-05T14:48:53.908+02:00 level=INFO msg="Adding CRDs to the cluster" logger=setup
|
||
|
time=2024-08-05T14:48:53.948+02:00 level=DEBUG+3 msg="crd not yet established, waiting." "crd name"=custompackages.idpbuilder.cnoe.io
|
||
|
time=2024-08-05T14:48:53.954+02:00 level=DEBUG+3 msg="crd not yet established, waiting." "crd name"=custompackages.idpbuilder.cnoe.io
|
||
|
time=2024-08-05T14:48:53.957+02:00 level=DEBUG+3 msg="crd not yet established, waiting." "crd name"=custompackages.idpbuilder.cnoe.io
|
||
|
time=2024-08-05T14:48:53.981+02:00 level=DEBUG+3 msg="crd not yet established, waiting." "crd name"=gitrepositories.idpbuilder.cnoe.io
|
||
|
time=2024-08-05T14:48:53.985+02:00 level=DEBUG+3 msg="crd not yet established, waiting." "crd name"=gitrepositories.idpbuilder.cnoe.io
|
||
|
time=2024-08-05T14:48:54.734+02:00 level=DEBUG+3 msg="Creating controller manager" logger=setup
|
||
|
time=2024-08-05T14:48:54.737+02:00 level=DEBUG+3 msg="Created temp directory for cloning repositories" logger=setup dir=/tmp/idpbuilder-localdev-2865684949
|
||
|
time=2024-08-05T14:48:54.737+02:00 level=INFO msg="Setting up CoreDNS" logger=setup
|
||
|
time=2024-08-05T14:48:54.798+02:00 level=INFO msg="Setting up TLS certificate" logger=setup
|
||
|
time=2024-08-05T14:48:54.811+02:00 level=DEBUG+3 msg="Creating/getting certificate" logger=setup host=cnoe.localtest.me sans="[cnoe.localtest.me *.cnoe.localtest.me]"
|
||
|
time=2024-08-05T14:48:54.825+02:00 level=DEBUG+3 msg="Creating secret for certificate" logger=setup host=cnoe.localtest.me
|
||
|
time=2024-08-05T14:48:54.832+02:00 level=DEBUG+3 msg="Running controllers" logger=setup
|
||
|
time=2024-08-05T14:48:54.833+02:00 level=DEBUG+3 msg="starting manager"
|
||
|
time=2024-08-05T14:48:54.833+02:00 level=INFO msg="Creating localbuild resource" logger=setup
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting EventSource" controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage source="kind source: *v1alpha1.CustomPackage"
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting EventSource" controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository source="kind source: *v1alpha1.GitRepository"
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting Controller" controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting Controller" controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting EventSource" controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild source="kind source: *v1alpha1.Localbuild"
|
||
|
time=2024-08-05T14:48:54.834+02:00 level=INFO msg="Starting Controller" controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild
|
||
|
time=2024-08-05T14:48:54.937+02:00 level=INFO msg="Starting workers" controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository "worker count"=1
|
||
|
time=2024-08-05T14:48:54.937+02:00 level=INFO msg="Starting workers" controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage "worker count"=1
|
||
|
time=2024-08-05T14:48:54.937+02:00 level=INFO msg="Starting workers" controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild "worker count"=1
|
||
|
time=2024-08-05T14:48:56.863+02:00 level=DEBUG+3 msg=Reconciling controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild Localbuild.name=localdev namespace="" name=localdev reconcileID=cc0e5b9d-4952-4fd1-9d62-6d9821f180be resource=/localdev
|
||
|
time=2024-08-05T14:48:56.863+02:00 level=DEBUG+3 msg="Create or update namespace" controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild Localbuild.name=localdev namespace="" name=localdev reconcileID=cc0e5b9d-4952-4fd1-9d62-6d9821f180be resource="&Namespace{ObjectMeta:{idpbuilder-localdev 0 0001-01-01 00:00:00 +0000 UTC <nil> <nil> map[] map[] [] [] []},Spec:NamespaceSpec{Finalizers:[],},Status:NamespaceStatus{Phase:,Conditions:[]NamespaceCondition{},},}"
|
||
|
time=2024-08-05T14:48:56.983+02:00 level=DEBUG+3 msg="installing core packages" controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild Localbuild.name=localdev namespace="" name=localdev reconcileID=cc0e5b9d-4952-4fd1-9d62-6d9821f180be
|
||
|
time=2024-08-05T14:
|
||
|
|
||
|
...
|
||
|
|
||
|
time=2024-08-05T14:51:04.166+02:00 level=INFO msg="Stopping and waiting for webhooks"
|
||
|
time=2024-08-05T14:51:04.166+02:00 level=INFO msg="Stopping and waiting for HTTP servers"
|
||
|
time=2024-08-05T14:51:04.166+02:00 level=INFO msg="Wait completed, proceeding to shutdown the manager"
|
||
|
|
||
|
########################### Finished Creating IDP Successfully! ############################
|
||
|
|
||
|
|
||
|
Can Access ArgoCD at https://cnoe.localtest.me:8443/argocd
|
||
|
Username: admin
|
||
|
Password can be retrieved by running: idpbuilder get secrets -p argocd
|
||
|
```
|
||
|
|
||
|
## Outcome
|
||
|
|
||
|
Nach ca. 10 minuten sind alle applications ausgerollt (am längsten dauert Backstage):
|
||
|
|
||
|

|
||
|
|
||
|
```bash
|
||
|
stl@ubuntu-vpn:~$ kubectl get applications -A
|
||
|
NAMESPACE NAME SYNC STATUS HEALTH STATUS
|
||
|
argocd argo-workflows Synced Healthy
|
||
|
argocd argocd Synced Healthy
|
||
|
argocd backstage Synced Healthy
|
||
|
argocd included-backstage-templates Synced Healthy
|
||
|
argocd coredns Synced Healthy
|
||
|
argocd external-secrets Synced Healthy
|
||
|
argocd gitea Synced Healthy
|
||
|
argocd keycloak Synced Healthy
|
||
|
argocd metric-server Synced Healthy
|
||
|
argocd nginx Synced Healthy
|
||
|
argocd spark-operator Synced Healthy
|
||
|
stl@ubuntu-vpn:~$ idpbuilder get secrets
|
||
|
---------------------------
|
||
|
Name: argocd-initial-admin-secret
|
||
|
Namespace: argocd
|
||
|
Data:
|
||
|
password : sPMdWiy0y0jhhveW
|
||
|
username : admin
|
||
|
---------------------------
|
||
|
Name: gitea-credential
|
||
|
Namespace: gitea
|
||
|
Data:
|
||
|
password : |iJ+8gG,(Jj?cc*G>%(i'OA7@(9ya3xTNLB{9k'G
|
||
|
username : giteaAdmin
|
||
|
---------------------------
|
||
|
Name: keycloak-config
|
||
|
Namespace: keycloak
|
||
|
Data:
|
||
|
KC_DB_PASSWORD : ES-rOE6MXs09r+fAdXJOvaZJ5I-+nZ+hj7zF
|
||
|
KC_DB_USERNAME : keycloak
|
||
|
KEYCLOAK_ADMIN_PASSWORD : BBeMUUK1CdmhKWxZxDDa1c5A+/Z-dE/7UD4/
|
||
|
POSTGRES_DB : keycloak
|
||
|
POSTGRES_PASSWORD : ES-rOE6MXs09r+fAdXJOvaZJ5I-+nZ+hj7zF
|
||
|
POSTGRES_USER : keycloak
|
||
|
USER_PASSWORD : RwCHPvPVMu+fQM4L6W/q-Wq79MMP+3CN-Jeo
|
||
|
```
|
||
|
|
||
|
### login to backstage
|
||
|
|
||
|
login geht mit den Creds, siehe oben:
|
||
|
|
||
|

|