diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md index 7a4da19..be22825 100644 --- a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md +++ b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/_index.md @@ -14,7 +14,7 @@ It consists of the orchestrator 'idpbuilder' and both of some predefined buildin {{% /pageinfo %}} -## Orchestrator 'idpbuilder' +## Orchestrator 'idpbuilder', initial run The orchestrator in CNOE is called 'idpbuilder'. It is [locally installable binary](https://cnoe.io/docs/reference-implementation/installations/idpbuilder/quick-start) @@ -36,16 +36,56 @@ source <(idpbuilder completion bash) alias ib=idpbuilder complete -F __start_idpbuilder ib +# check and remove all existing kind clusters +kind delete clusters --all +kind get clusters +# sth. like 'No kind clusters found.' + # run $ib create --use-path-routing --log-level debug --package-dir https://github.com/cnoe-io/stacks//ref-implementation ``` +You get output like + +```bash +stl@ubuntu-vpn:~/git/mms/ipceicis-developerframework$ idpbuilder create +Oct 1 10:09:18 INFO Creating kind cluster logger=setup +Oct 1 10:09:18 INFO 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.30.0" + 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 ############################ +``` + ## Show time steps > Goto https://cnoe.io/docs/reference-implementation/installations/idpbuilder/usage, and follow the flow -### Just run idpbuilder +### Prepare a k8s cluster with kind +You may have seen: when starting `idpbuilder` without an existing cluster named `localdev` it first creates this cluster by calling `kind`with an internally defined config. + +It's an important feature of idpbuilder that it will set up on an existing cluster `localdev` when called several times in a row e.g. to append new packages to the cluster. + +That's why we here first create the kind cluster `localdev`itself: ```bash cat << EOF | kind create cluster --name localdev --config=- @@ -70,15 +110,471 @@ containerdConfigPatches: insecure_skip_verify = true ``` -``` +```bash +# alternatively, if you have the kind config as file: kind create cluster --name localdev --config kind-config.yaml - -# now idpbuilder reuses the already existing cluster -ib create ``` +#### Output + +A typical raw kind setup kubernetes cluster would look like this with respect to running pods: + +> be sure all pods are in status 'running' + +```bash +stl@ubuntu-vpn:~/git/mms/idpbuilder$ k get pods -A +NAMESPACE NAME READY STATUS RESTARTS AGE +kube-system coredns-76f75df574-lb7jz 1/1 Running 0 15s +kube-system coredns-76f75df574-zm2wp 1/1 Running 0 15s +kube-system etcd-localdev-control-plane 1/1 Running 0 27s +kube-system kindnet-8qhd5 1/1 Running 0 13s +kube-system kindnet-r4d6n 1/1 Running 0 15s +kube-system kube-apiserver-localdev-control-plane 1/1 Running 0 27s +kube-system kube-controller-manager-localdev-control-plane 1/1 Running 0 27s +kube-system kube-proxy-vrh64 1/1 Running 0 15s +kube-system kube-proxy-w8ks9 1/1 Running 0 13s +kube-system kube-scheduler-localdev-control-plane 1/1 Running 0 27s +local-path-storage local-path-provisioner-6f8956fb48-6fvt2 1/1 Running 0 15s +``` + +### First run: Start with core applications, 'core package' + +Now we run idpbuilder the first time: + +``` +# now idpbuilder reuses the already existing cluster +# pls apply '--use-path-routing' otherwise as we discovered currently the service resolving inside the cluster won't work +ib create --use-path-routing +``` + +#### Output + +##### idpbuilder log + +```bash +stl@ubuntu-vpn:~/git/mms/idpbuilder$ ib create --use-path-routing +Oct 1 10:32:50 INFO Creating kind cluster logger=setup +Oct 1 10:32:50 INFO Runtime detected logger=setup provider=docker +Oct 1 10:32:50 INFO Cluster already exists logger=setup cluster=localdev +Oct 1 10:32:50 INFO Adding CRDs to the cluster logger=setup +Oct 1 10:32:51 INFO Setting up CoreDNS logger=setup +Oct 1 10:32:51 INFO Setting up TLS certificate logger=setup +Oct 1 10:32:51 INFO Creating localbuild resource logger=setup +Oct 1 10:32:51 INFO Starting EventSource controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository source=kind source: *v1alpha1.GitRepository +Oct 1 10:32:51 INFO Starting Controller controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 10:32:51 INFO Starting EventSource controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild source=kind source: *v1alpha1.Localbuild +Oct 1 10:32:51 INFO Starting Controller controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 10:32:51 INFO Starting EventSource controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage source=kind source: *v1alpha1.CustomPackage +Oct 1 10:32:51 INFO Starting Controller controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 10:32:51 INFO Starting workers controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild worker count=1 +Oct 1 10:32:51 INFO Starting workers controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage worker count=1 +Oct 1 10:32:51 INFO Starting workers controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository worker count=1 +Oct 1 10:32:54 INFO Waiting for Deployment my-gitea to become ready controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:32:54 INFO Waiting for Deployment ingress-nginx-controller to become ready controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:33:24 INFO Waiting for Deployment my-gitea to become ready controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:33:24 INFO Waiting for Deployment ingress-nginx-controller to become ready controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:33:54 INFO Waiting for Deployment my-gitea to become ready controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:34:24 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:34:24 INFO expected annotation, cnoe.io/last-observed-cli-start-time, not found controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:34:24 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=6fc396d4-e0d5-4c80-aaee-20c1bbffea54 +Oct 1 10:34:25 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=0667fa85-af1c-403f-bcd9-16ff8f2fad7e +Oct 1 10:34:25 INFO expected annotation, cnoe.io/last-observed-cli-start-time, not found controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=0667fa85-af1c-403f-bcd9-16ff8f2fad7e +Oct 1 10:34:25 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=0667fa85-af1c-403f-bcd9-16ff8f2fad7e +Oct 1 10:34:40 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=ec720aeb-02cd-4974-a991-cf2f19ce8536 +Oct 1 10:34:40 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=ec720aeb-02cd-4974-a991-cf2f19ce8536 +Oct 1 10:34:40 INFO Shutting Down controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=ec720aeb-02cd-4974-a991-cf2f19ce8536 +Oct 1 10:34:40 INFO Stopping and waiting for non leader election runnables +Oct 1 10:34:40 INFO Stopping and waiting for leader election runnables +Oct 1 10:34:40 INFO Shutdown signal received, waiting for all workers to finish controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 10:34:40 INFO Shutdown signal received, waiting for all workers to finish controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 10:34:40 INFO All workers finished controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 10:34:40 INFO Shutdown signal received, waiting for all workers to finish controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 10:34:40 INFO All workers finished controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 10:34:40 INFO All workers finished controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 10:34:40 INFO Stopping and waiting for caches +Oct 1 10:34:40 INFO Stopping and waiting for webhooks +Oct 1 10:34:40 INFO Stopping and waiting for HTTP servers +Oct 1 10:34:40 INFO 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 +``` + +##### ArgoCD applications + +When running idpbuilder 'barely' (without package option) you get the 'core applications' deployed in your cluster: + +```bash +stl@ubuntu-vpn:~/git/mms/ipceicis-developerframework$ k get applications -A +NAMESPACE NAME SYNC STATUS HEALTH STATUS +argocd argocd Synced Healthy +argocd gitea Synced Healthy +argocd nginx Synced Healthy +``` + +##### ArgoCD UI + +Open ArgoCD locally: + +https://cnoe.localtest.me:8443/argocd + +![alt text](image.png) + +Next find the provided credentials for ArgoCD (here: argocd-initial-admin-secret): + +```bash +stl@ubuntu-vpn:~/git/mms/idpbuilder$ ib get secrets +--------------------------- +Name: argocd-initial-admin-secret +Namespace: argocd +Data: + password : 2MoMeW30wSC9EraF + username : admin +--------------------------- +Name: gitea-credential +Namespace: gitea +Data: + password : LI$T?o>N{-<|{^dm$eTg*gni1(2:Y0@q344yqQIS + username : giteaAdmin +``` + +In ArgoCD you will see the deployed three applications of the core package: + +![alt text](image-1.png) + +### Second run: Append 'package1' from the CNOE-stacks repo + +CNOE provides example packages in `https://github.com/cnoe-io/stacks.git`. Having cloned this repo you can locally refer to theses packages: + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ git remote -v +origin https://github.com/cnoe-io/stacks.git (fetch) +origin https://github.com/cnoe-io/stacks.git (push) +``` + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ls -al +total 64 +drwxr-xr-x 12 stl stl 4096 Sep 28 13:55 . +drwxr-xr-x 26 stl stl 4096 Sep 30 11:53 .. +drwxr-xr-x 8 stl stl 4096 Sep 28 13:56 .git +drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 .github +-rw-r--r-- 1 stl stl 11341 Sep 28 09:12 LICENSE +-rw-r--r-- 1 stl stl 1079 Sep 28 13:55 README.md +drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 basic +drwxr-xr-x 4 stl stl 4096 Sep 14 15:54 crossplane-integrations +drwxr-xr-x 3 stl stl 4096 Aug 13 14:52 dapr-integration +drwxr-xr-x 3 stl stl 4096 Sep 14 15:54 jupyterhub +drwxr-xr-x 6 stl stl 4096 Aug 16 14:36 local-backup +drwxr-xr-x 3 stl stl 4096 Aug 16 14:36 localstack-integration +drwxr-xr-x 8 stl stl 4096 Sep 28 13:02 ref-implementation +drwxr-xr-x 2 stl stl 4096 Aug 16 14:36 terraform-integrations + +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ls -al basic/ +total 20 +drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 . +drwxr-xr-x 12 stl stl 4096 Sep 28 13:55 .. +-rw-r--r-- 1 stl stl 632 Jul 29 10:57 README.md +drwxr-xr-x 3 stl stl 4096 Jul 29 10:57 package1 +drwxr-xr-x 2 stl stl 4096 Jul 29 10:57 package2 + +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ls -al basic/package1 +total 16 +drwxr-xr-x 3 stl stl 4096 Jul 29 10:57 . +drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 .. +-rw-r--r-- 1 stl stl 655 Jul 29 10:57 app.yaml +drwxr-xr-x 2 stl stl 4096 Jul 29 10:57 manifests + +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ls -al basic/package2 +total 16 +drwxr-xr-x 2 stl stl 4096 Jul 29 10:57 . +drwxr-xr-x 4 stl stl 4096 Jul 29 10:57 .. +-rw-r--r-- 1 stl stl 498 Jul 29 10:57 app.yaml +-rw-r--r-- 1 stl stl 500 Jul 29 10:57 app2.yaml +``` + +#### Output + +Now we run idpbuilder the second time with `-p basic/package1` + +##### idpbuilder log + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ib create --use-path-routing -p basic/package1 +Oct 1 12:09:27 INFO Creating kind cluster logger=setup +Oct 1 12:09:27 INFO Runtime detected logger=setup provider=docker +Oct 1 12:09:27 INFO Cluster already exists logger=setup cluster=localdev +Oct 1 12:09:28 INFO Adding CRDs to the cluster logger=setup +Oct 1 12:09:28 INFO Setting up CoreDNS logger=setup +Oct 1 12:09:28 INFO Setting up TLS certificate logger=setup +Oct 1 12:09:28 INFO Creating localbuild resource logger=setup +Oct 1 12:09:28 INFO Starting EventSource controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild source=kind source: *v1alpha1.Localbuild +Oct 1 12:09:28 INFO Starting Controller controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 12:09:28 INFO Starting EventSource controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage source=kind source: *v1alpha1.CustomPackage +Oct 1 12:09:28 INFO Starting Controller controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 12:09:28 INFO Starting EventSource controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository source=kind source: *v1alpha1.GitRepository +Oct 1 12:09:28 INFO Starting Controller controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 12:09:28 INFO Starting workers controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild worker count=1 +Oct 1 12:09:28 INFO Starting workers controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository worker count=1 +Oct 1 12:09:28 INFO Starting workers controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage worker count=1 +Oct 1 12:09:29 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=0ed7ccc2-dec7-4ab8-909c-791a7d1b67a8 +Oct 1 12:09:29 INFO unknown field "status.history[0].initiatedBy" logger=KubeAPIWarningLogger +Oct 1 12:09:29 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=0ed7ccc2-dec7-4ab8-909c-791a7d1b67a8 +Oct 1 12:09:29 ERROR failed updating repo status controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage name=app-my-app namespace=idpbuilder-localdev namespace=idpbuilder-localdev name=app-my-app reconcileID=f9873560-5dcd-4e59-b6f7-ce5d1029ef3d err=Operation cannot be fulfilled on custompackages.idpbuilder.cnoe.io "app-my-app": the object has been modified; please apply your changes to the latest version and try again +Oct 1 12:09:29 ERROR Reconciler error controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage name=app-my-app namespace=idpbuilder-localdev namespace=idpbuilder-localdev name=app-my-app reconcileID=f9873560-5dcd-4e59-b6f7-ce5d1029ef3d err=updating argocd application object my-app: Operation cannot be fulfilled on applications.argoproj.io "my-app": the object has been modified; please apply your changes to the latest version and try again +Oct 1 12:09:31 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=531cc2d4-6250-493a-aca8-fecf048a608d +Oct 1 12:09:31 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=531cc2d4-6250-493a-aca8-fecf048a608d +Oct 1 12:09:44 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=022b9813-8708-4f4e-90d7-38f1e114c46f +Oct 1 12:09:44 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=022b9813-8708-4f4e-90d7-38f1e114c46f +Oct 1 12:10:00 INFO installing bootstrap apps to ArgoCD controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=79a85c21-42c1-41ec-ad03-2bb77aeae027 +Oct 1 12:10:00 INFO Checking if we should shutdown controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=79a85c21-42c1-41ec-ad03-2bb77aeae027 +Oct 1 12:10:00 INFO Shutting Down controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild name=localdev name=localdev reconcileID=79a85c21-42c1-41ec-ad03-2bb77aeae027 +Oct 1 12:10:00 INFO Stopping and waiting for non leader election runnables +Oct 1 12:10:00 INFO Stopping and waiting for leader election runnables +Oct 1 12:10:00 INFO Shutdown signal received, waiting for all workers to finish controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 12:10:00 INFO Shutdown signal received, waiting for all workers to finish controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 12:10:00 INFO All workers finished controller=custompackage controllerGroup=idpbuilder.cnoe.io controllerKind=CustomPackage +Oct 1 12:10:00 INFO Shutdown signal received, waiting for all workers to finish controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 12:10:00 INFO All workers finished controller=localbuild controllerGroup=idpbuilder.cnoe.io controllerKind=Localbuild +Oct 1 12:10:00 INFO All workers finished controller=gitrepository controllerGroup=idpbuilder.cnoe.io controllerKind=GitRepository +Oct 1 12:10:00 INFO Stopping and waiting for caches +Oct 1 12:10:00 INFO Stopping and waiting for webhooks +Oct 1 12:10:00 INFO Stopping and waiting for HTTP servers +Oct 1 12:10:00 INFO 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 +``` + +##### ArgoCD applications + +Now we have additionally the 'my-app' deployed in the cluster: + +```bash +stl@ubuntu-vpn:~$ k get applications -A +NAMESPACE NAME SYNC STATUS HEALTH STATUS +argocd argocd Synced Healthy +argocd gitea Synced Healthy +argocd my-app Synced Healthy +argocd nginx Synced Healthy +``` + +##### ArgoCD UI + +![alt text](image-2.png) + +### Third run: Finally we append 'ref-implementation' from the CNOE-stacks repo + +We finally append the so called ['reference-implementation'](https://cnoe.io/docs/reference-implementation/integrations/reference-impl), which provides a real basic IDP: + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ib create --use-path-routing -p ref-implementation +``` + +##### ArgoCD applications + +```bash +stl@ubuntu-vpn:~$ k get applications -A +NAMESPACE NAME SYNC STATUS HEALTH STATUS +argocd argo-workflows Synced Healthy +argocd argocd Synced Healthy +argocd backstage Synced Healthy +argocd backstage-templates Synced Healthy +argocd external-secrets Synced Healthy +argocd gitea Synced Healthy +argocd keycloak Synced Healthy +argocd metric-server Synced Healthy +argocd my-app Synced Healthy +argocd nginx Synced Healthy +argocd spark-operator Synced Healthy +``` + +##### ArgoCD UI + +ArgoCD shows all provissioned applications: + +![alt text](image-3.png) + +##### Keycloak UI + +In our cluster there is also keycloak as IAM provisioned. +Login into Keycloak with 'cnoe-admin' and the KEYCLOAK_ADMIN_PASSWORD. + +These credentails are defined in the package: + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ cat ref-implementation/keycloak/manifests/keycloak-config.yaml | grep -i admin + group-admin-payload.json: | + {"name":"admin"} + "/admin" + ADMIN_PASSWORD=$(cat /var/secrets/KEYCLOAK_ADMIN_PASSWORD) + --data-urlencode "username=cnoe-admin" \ + --data-urlencode "password=${ADMIN_PASSWORD}" \ +``` + +```bash +stl@ubuntu-vpn:~/git/mms/cnoe-stacks$ ib get secrets +--------------------------- +Name: argocd-initial-admin-secret +Namespace: argocd +Data: + password : 2MoMeW30wSC9EraF + username : admin +--------------------------- +Name: gitea-credential +Namespace: gitea +Data: + password : LI$T?o>N{-<|{^dm$eTg*gni1(2:Y0@q344yqQIS + username : giteaAdmin +--------------------------- +Name: keycloak-config +Namespace: keycloak +Data: + KC_DB_PASSWORD : k3-1kgxxd/X2Cw//pX-uKMsmgWogEz5YGnb5 + KC_DB_USERNAME : keycloak + KEYCLOAK_ADMIN_PASSWORD : zMSjv5eA0l/+0-MDAaaNe+rHRMrB2q0NssP- + POSTGRES_DB : keycloak + POSTGRES_PASSWORD : k3-1kgxxd/X2Cw//pX-uKMsmgWogEz5YGnb5 + POSTGRES_USER : keycloak + USER_PASSWORD : Kd+0+/BqPRAvnLPZO-L2o/6DoBrzUeMsr29U +``` + +![alt text](image-4.png) + + +##### Backstage UI + +As Backstage login you either can use the 'user1' with `USER_PASSWORD : Kd+0+/BqPRAvnLPZO-L2o/6DoBrzUeMsr29U` or you create a new user in keycloak + +![](image-6.png) + +We create user 'ipcei' and also set a password (in tab 'Credentials'): + +![alt text](image-7.png) + +Now we can log into backstage (rember: you could have already existing usr 'user1'): + +![alt text](image-8.png) + +and see the basic setup of the Backstage portal: + +![alt text](image-9.png) + +### Use a Golden Path: 'Basic Deployment' + +Now we want to use the Backstage portal as a developer. We create in Backstage our own platfrom based activity by using the golden path template 'Basic Deployment: + +![alt text](image-10.png) + +When we run it, we see 'golden path activities' + +![alt text](image-11.png) + +which finally result in a new catalogue entry: + +![alt text](image-12.png) + +#### Software development lifecycle + +When we follow the 'view source' link we are directly linked to the git repo of our newly created application: + +![alt text](image-13.png) + +Check it out by cloning into a local git repo (watch the GIT_SSL_NO_VERIFY=true env setting): + +```bash +stl@ubuntu-vpn:~/git/mms/idp-temporary$ GIT_SSL_NO_VERIFY=true git clone https://cnoe.localtest.me:8443/gitea/giteaAdmin/basicdeployment.git +Cloning into 'basicdeployment'... +remote: Enumerating objects: 10, done. +remote: Counting objects: 100% (10/10), done. +remote: Compressing objects: 100% (8/8), done. +remote: Total 10 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) +Receiving objects: 100% (10/10), 47.62 KiB | 23.81 MiB/s, done. + +stl@ubuntu-vpn:~/git/mms/idp-temporary$ cd basicdeployment/ + +stl@ubuntu-vpn:~/git/mms/idp-temporary/basicdeployment$ ll +total 24 +drwxr-xr-x 5 stl stl 4096 Oct 1 13:00 ./ +drwxr-xr-x 4 stl stl 4096 Oct 1 13:00 ../ +drwxr-xr-x 8 stl stl 4096 Oct 1 13:00 .git/ +-rw-r--r-- 1 stl stl 928 Oct 1 13:00 catalog-info.yaml +drwxr-xr-x 3 stl stl 4096 Oct 1 13:00 docs/ +drwxr-xr-x 2 stl stl 4096 Oct 1 13:00 manifests/ +``` + +#### Edit and change + +Change some things, like the decription and the replicas: + +![alt text](image-16.png) + +#### Push + +Push your changes, use the giteaAdmin user to authenticate: + +```bash +stl@ubuntu-vpn:~/git/mms/idp-temporary/basicdeployment$ ib get secrets +--------------------------- +Name: argocd-initial-admin-secret +Namespace: argocd +Data: + password : 2MoMeW30wSC9EraF + username : admin +--------------------------- +Name: gitea-credential +Namespace: gitea +Data: + password : LI$T?o>N{-<|{^dm$eTg*gni1(2:Y0@q344yqQIS + username : giteaAdmin +--------------------------- +Name: keycloak-config +Namespace: keycloak +Data: + KC_DB_PASSWORD : k3-1kgxxd/X2Cw//pX-uKMsmgWogEz5YGnb5 + KC_DB_USERNAME : keycloak + KEYCLOAK_ADMIN_PASSWORD : zMSjv5eA0l/+0-MDAaaNe+rHRMrB2q0NssP- + POSTGRES_DB : keycloak + POSTGRES_PASSWORD : k3-1kgxxd/X2Cw//pX-uKMsmgWogEz5YGnb5 + POSTGRES_USER : keycloak + USER_PASSWORD : Kd+0+/BqPRAvnLPZO-L2o/6DoBrzUeMsr29U +stl@ubuntu-vpn:~/git/mms/idp-temporary/basicdeployment$ GIT_SSL_NO_VERIFY=true git push +Username for 'https://cnoe.localtest.me:8443': giteaAdmin +Password for 'https://giteaAdmin@cnoe.localtest.me:8443': +Enumerating objects: 5, done. +Counting objects: 100% (5/5), done. +Delta compression using up to 8 threads +Compressing objects: 100% (3/3), done. +Writing objects: 100% (3/3), 382 bytes | 382.00 KiB/s, done. +Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 +remote: . Processing 1 references +remote: Processed 1 references in total +To https://cnoe.localtest.me:8443/gitea/giteaAdmin/basicdeployment.git + 69244d6..1269617 main -> main +``` + +#### Wait for gitops magic: deployment into the 'production' cluster + +Next wait a bit until Gitops does its magic and our 'wanted' state in the repo gets automatically deployed to the 'production' cluster: + +![alt text](image-14.png) + +![alt text](image-15.png) + {{% pageinfo color="info" %}} ### What comes next? +The showtime of CNOE high level behaviour and usage scenarios is now finished. We setup an initial IDP and used a backstage golden path to init and deploy a simple application. + [Last not least](../conclusio/) we want to sum up the whole way from Devops to 'Frameworking' (is this the correct wording???) {{% /pageinfo %}} diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-1.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-1.png new file mode 100644 index 0000000..eba944a Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-1.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-10.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-10.png new file mode 100644 index 0000000..ab4c37b Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-10.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-11.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-11.png new file mode 100644 index 0000000..cae5bcf Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-11.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-12.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-12.png new file mode 100644 index 0000000..72ec49b Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-12.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-13.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-13.png new file mode 100644 index 0000000..8e79e48 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-13.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-14.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-14.png new file mode 100644 index 0000000..9cb9b8d Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-14.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-15.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-15.png new file mode 100644 index 0000000..b2cff61 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-15.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-16.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-16.png new file mode 100644 index 0000000..4d187bb Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-16.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-2.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-2.png new file mode 100644 index 0000000..e27fbb6 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-2.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-3.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-3.png new file mode 100644 index 0000000..e01f4f9 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-3.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-4.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-4.png new file mode 100644 index 0000000..7404b75 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-4.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-5.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-5.png new file mode 100644 index 0000000..259d6b5 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-5.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-6.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-6.png new file mode 100644 index 0000000..259d6b5 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-6.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-7.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-7.png new file mode 100644 index 0000000..f2b1f45 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-7.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-8.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-8.png new file mode 100644 index 0000000..29caa47 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-8.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-9.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-9.png new file mode 100644 index 0000000..31e1cbc Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image-9.png differ diff --git a/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image.png b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image.png new file mode 100644 index 0000000..27f1fb4 Binary files /dev/null and b/content/en/docs/project/conceptual-onboarding/6_cnoe-showtime/image.png differ diff --git a/content/en/docs/solution/scenarios/_index.md b/content/en/docs/solution/scenarios/_index.md new file mode 100644 index 0000000..a7839e3 --- /dev/null +++ b/content/en/docs/solution/scenarios/_index.md @@ -0,0 +1,6 @@ +--- +title: Scenarios +weight: 1 +description: Usage scenarios and system architecture +--- + diff --git a/content/en/docs/solution/scenarios/gitops/_index.md b/content/en/docs/solution/scenarios/gitops/_index.md new file mode 100644 index 0000000..b0191fb --- /dev/null +++ b/content/en/docs/solution/scenarios/gitops/_index.md @@ -0,0 +1,16 @@ +--- +title: Gitops +weight: 1 +description: Gitops scenarios +--- + +WiP - this is in work. + +What kind of Gitops do we have with idpbuilder/CNOE ? + +## References + + +https://github.com/gitops-bridge-dev/gitops-bridge + +![alt text](image.png) \ No newline at end of file diff --git a/content/en/docs/solution/scenarios/gitops/image.png b/content/en/docs/solution/scenarios/gitops/image.png new file mode 100644 index 0000000..452b382 Binary files /dev/null and b/content/en/docs/solution/scenarios/gitops/image.png differ diff --git a/content/en/docs/solution/scenarios/orchestration/_index.md b/content/en/docs/solution/scenarios/orchestration/_index.md new file mode 100644 index 0000000..2ef6417 --- /dev/null +++ b/content/en/docs/solution/scenarios/orchestration/_index.md @@ -0,0 +1,34 @@ +--- +title: Orchestration +weight: 1 +description: Usage scenarios and system architecture of platform orchestartion +--- + +WiP - this is in work. + +What deployment scenarios do we have with idpbuilder/CNOE ? + +## References + +* Base Url of CNOE presentations: https://github.com/cnoe-io/presentations/tree/main + +### CNOE in EKS + +The next chart shows a system landscape of CNOE orchestration. + +[2024-04-PlatformEngineering-DevOpsDayRaleigh.pdf](https://github.com/cnoe-io/presentations/blob/main/2024-04-PlatformEngineering-DevOpsDayRaleigh.pdf) + +Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? + +![alt text](image.png) + +### CNOE in AWS + +The next chart shows a context chart of CNOE orchestration. + +[reference-implementation-aws](https://github.com/cnoe-io/reference-implementation-aws) + +Questions: What are the degrees of freedom in this chart? What variations with respect to environments and environmnent types exist? + + +![alt text](image-1.png) \ No newline at end of file diff --git a/content/en/docs/solution/scenarios/orchestration/image-1.png b/content/en/docs/solution/scenarios/orchestration/image-1.png new file mode 100644 index 0000000..f839018 Binary files /dev/null and b/content/en/docs/solution/scenarios/orchestration/image-1.png differ diff --git a/content/en/docs/solution/scenarios/orchestration/image.png b/content/en/docs/solution/scenarios/orchestration/image.png new file mode 100644 index 0000000..4c47795 Binary files /dev/null and b/content/en/docs/solution/scenarios/orchestration/image.png differ diff --git a/content/en/docs/solution/tools/_index.md b/content/en/docs/solution/tools/_index.md index 5b39130..2771cce 100644 --- a/content/en/docs/solution/tools/_index.md +++ b/content/en/docs/solution/tools/_index.md @@ -1,15 +1,7 @@ --- - title: Tools - linkTitle: Tools - -menu: {main: {weight: 20}} - weight: 4 - +description: The tools that are used for implementing Edge Developer Framework --- - - -In this section are stored information about the tools that are used for implementing Developer Framework \ No newline at end of file