From e8229bb683958bed21b238a3caabb35c90b96cda Mon Sep 17 00:00:00 2001 From: Blai Peidro Date: Thu, 17 Sep 2026 01:50:41 +0200 Subject: [PATCH] refactor: name the sample files and the mesh ingress docs Ascender The first thing the README tells a reader to run is `kubectl apply -f awx-demo.yml`, and that file creates an AWX named awx-demo. Every other surface a new deployment touches is Ascender now, so the sample that introduces the operator should be too. awx-demo.yml becomes ascender-demo.yml and declares an Ascender in ascender.ansible.com, which is what a new deployment should be. awxmeshingress-demo.yml follows, and the README points at both. The mesh ingress documentation was left half converted: #50 moved the apiVersion and kind rows of its reference table to Ascender but not the AWXMeshIngressSpec, AWXMeshIngressStatus and AWXMeshIngressList rows beside them, nor the headings those rows link to. All twenty six move together, anchors included, and every in page link still resolves. docs/awx-demo.svg goes. It is an 844 kilobyte terminal recording that nothing references, showing an install of awx-operator.yaml producing a pod named awx-operator-7dbf9db9d7-z62pm: a workflow that cannot happen any more. It stays in the history if anyone wants it back. A comment in the installer defaults offered awx-demo.example.com as an example hostname, which now matches the sample it refers to. --- README.md | 4 +- ascender-demo.yml | 7 ++++ ascendermeshingress-demo.yml | 7 ++++ awx-demo.yml | 7 ---- awxmeshingress-demo.yml | 7 ---- docs/awx-demo.svg | 1 - .../advanced-configuration/mesh-ingress.md | 42 +++++++++---------- roles/installer/defaults/main.yml | 2 +- 8 files changed, 38 insertions(+), 39 deletions(-) create mode 100644 ascender-demo.yml create mode 100644 ascendermeshingress-demo.yml delete mode 100644 awx-demo.yml delete mode 100644 awxmeshingress-demo.yml delete mode 100644 docs/awx-demo.svg diff --git a/README.md b/README.md index 6fd2426d..45ea6617 100644 --- a/README.md +++ b/README.md @@ -27,10 +27,10 @@ make deploy Apply a custom resource describing the deployment you want, then let the operator reconcile it: ```bash -kubectl apply -f awx-demo.yml +kubectl apply -f ascender-demo.yml ``` -An automation mesh ingress is declared the same way, using [`awxmeshingress-demo.yml`](./awxmeshingress-demo.yml) as the starting point. +An automation mesh ingress is declared the same way, using [`ascendermeshingress-demo.yml`](./ascendermeshingress-demo.yml) as the starting point. ## Configuration diff --git a/ascender-demo.yml b/ascender-demo.yml new file mode 100644 index 00000000..d7268e91 --- /dev/null +++ b/ascender-demo.yml @@ -0,0 +1,7 @@ +--- +apiVersion: ascender.ansible.com/v1beta1 +kind: Ascender +metadata: + name: ascender-demo +spec: + service_type: nodeport diff --git a/ascendermeshingress-demo.yml b/ascendermeshingress-demo.yml new file mode 100644 index 00000000..552a7c62 --- /dev/null +++ b/ascendermeshingress-demo.yml @@ -0,0 +1,7 @@ +--- +apiVersion: ascender.ansible.com/v1alpha1 +kind: AscenderMeshIngress +metadata: + name: ascender-mesh-ingress-demo +spec: + deployment_name: ascender-demo diff --git a/awx-demo.yml b/awx-demo.yml deleted file mode 100644 index 95053166..00000000 --- a/awx-demo.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: awx.ansible.com/v1beta1 -kind: AWX -metadata: - name: awx-demo -spec: - service_type: nodeport diff --git a/awxmeshingress-demo.yml b/awxmeshingress-demo.yml deleted file mode 100644 index eca7bdf2..00000000 --- a/awxmeshingress-demo.yml +++ /dev/null @@ -1,7 +0,0 @@ ---- -apiVersion: awx.ansible.com/v1alpha1 -kind: AWXMeshIngress -metadata: - name: awx-mesh-ingress-demo -spec: - deployment_name: awx-demo diff --git a/docs/awx-demo.svg b/docs/awx-demo.svg deleted file mode 100644 index 8414086e..00000000 --- a/docs/awx-demo.svg +++ /dev/null @@ -1 +0,0 @@ -$$#Forthisdemo,I'mrunningitonFedora34withkvm2$#Pleasenotetheoptionspassedtotheminikubestartcommand$#shallbedifferentforeachenvironment.$#RefertotheMinikubedocumentationforfurtherassistance$#Tospeedthingsuponthisvideo,hereisthecommandIusedtostartmyminikubeversion$#minikubestart--driver=kvm2--addons=ingress--cpus=4--cni=flannel\$#--install-addons=true--kubernetes-version=stable--memory=12g$minikubestart😄minikubev1.20.0onFedora34✨Usingthekvm2driverbasedonexistingprofile👍Startingcontrolplanenodeminikubeinclusterminikube🏃Updatingtherunningkvm2"minikube"VM...🐳PreparingKubernetesv1.20.2onDocker20.10.6...🔎VerifyingKubernetescomponents...▪Usingimagek8s.gcr.io/ingress-nginx/controller:v0.44.0▪Usingimagedocker.io/jettech/kube-webhook-certgen:v1.5.1▪Usingimagegcr.io/k8s-minikube/storage-provisioner:v5🔎Verifyingingressaddon...🌟Enabledaddons:storage-provisioner,default-storageclass,ingress🏄Done!kubectlisnowconfiguredtouse"minikube"clusterand"default"namespacebydefault$#Nowlet'scheckifthepodsareontherunningstate.$#Itmighttakeafewsecondstogetallofthemupandrunningonyourend$kubectlgetnodesNAMESTATUSROLESAGEVERSIONminikubeReadycontrol-plane,master45mv1.20.2$kubectlgetpods-ANAMESPACENAMEREADYSTATUSRESTARTSAGEingress-nginxingress-nginx-admission-create-jws4j0/1Completed044mingress-nginxingress-nginx-admission-patch-sjk7b0/1Completed044mingress-nginxingress-nginx-controller-5d88495688-fpfnk1/1Running044mkube-systemcoredns-74ff55c5b-xcpzh1/1Running044mkube-systemetcd-minikube1/1Running045mkube-systemkube-apiserver-minikube1/1Running045mkube-systemkube-controller-manager-minikube1/1Running045mkube-systemkube-flannel-ds-amd64-v7c7g1/1Running044mkube-systemkube-proxy-8mpm91/1Running044mkube-systemkube-scheduler-minikube1/1Running045mkube-systemstorage-provisioner1/1Running145m$#Forthisdemo,I'mdeployingtheawx-operatorfromthedevelbranch$#butpleaserefertothedocumentationonhowdeployastablerelease$kubectlapply-fawx-operator.yamlcustomresourcedefinition.apiextensions.k8s.io/awxs.awx.ansible.comcreatedcustomresourcedefinition.apiextensions.k8s.io/awxbackups.awx.ansible.comcreatedcustomresourcedefinition.apiextensions.k8s.io/awxrestores.awx.ansible.comcreatedclusterrole.rbac.authorization.k8s.io/awx-operatorcreatedclusterrolebinding.rbac.authorization.k8s.io/awx-operatorcreatedserviceaccount/awx-operatorcreateddeployment.apps/awx-operatorcreated$#Let'swaitthecontainerimagetobedownloadandtheawx-operator$#shouldbeinarunningstate$kubectl$kubectlget$kubectlgetpods$kubectlgetpods-wNAMEREADYSTATUSRESTARTSAGEawx-operator-7dbf9db9d7-z62pm1/1Running012s^C^C$$#Nowfirst,let'screateaAWXinstancewithusingaNodePortservice$#Thisprocesswilltakeafewminutestofinish,butweshouldhavea$#PostgreSQLstatefulsetrunningandaAWXpodwith4containersinRunningstate$catawx-demo.yml---apiVersion:awx.ansible.com/v1beta1kind:AWXmetadata:name:awx-demospec:service_type:nodeporthostname:awx-demo.example.com$kubectlapply-fawx-demo.ymlawx.awx.ansible.com/awx-democreated$#Inthemeantime,youcaninspecttheawx-operatorlogsaswell$#kubectllogs-fdeploy/awx-operator$#Allowsometimetogettheimagespulledandforthedatabasemigration$#Gogetacoffee:)$kubectlgetpods-l"app.kubernetes.io/managed-by=awx-operator"-wNAMEREADYSTATUSRESTARTSAGEawx-demo-postgres-00/1Pending00sawx-demo-postgres-00/1ContainerCreating00sawx-demo-postgres-01/1Running02sawx-demo-77d96f88d5-rbqz90/4Pending00sawx-demo-77d96f88d5-rbqz90/4ContainerCreating00sawx-demo-77d96f88d5-rbqz94/4Running05s$#Nowthateverythingisintherunningstate,weshouldbegood:)$kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator"$kubectlgetpods-l"app.kubernetes.io/managed-by=awx-operator"NAMEREADYSTATUSRESTARTSAGEawx-demo-77d96f88d5-rbqz94/4Running018sawx-demo-postgres-01/1Running028s$kubectl get svc -l "app.kubernetes.io/managed-by=awx-operator"$kubectlgetsvc-l"app.kubernetes.io/managed-by=awx-operator"NAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEawx-demo-postgresClusterIPNone<none>5432/TCP35sawx-demo-serviceNodePort10.98.233.228<none>80:32747/TCP27s$#Let'sdoaquicktesttocheckifthingsarelookinggood$kubectliexecawx-demo/bin/bashUsethearrowkeystonavigate:↓↑→←?SelectPod:Namespace:default|Pod:▸awx-demo-77d96f88d5-rbqz9Namespace:default|Pod:awx-demo-postgres-0Namespace:default|Pod:✔awx-demo-77d96f88d5-rbqz9?SelectContainer:Container:▸redisContainer:awx-demo-webContainer:awx-demo-taskContainer:awx-demo-eeContainer:redisContainer:▸awx-demo-webContainer:▸awx-demo-taskContainer:✔awx-demo-taskbash-4.4$bash-4.4$awx-manageversion19.1.0bash-4.4$awx-managecheck_dbDatabaseVersion:PostgreSQL12.7(Debian12.7-1.pgdg100+1)onx86_64-pc-linux-gnu,compiledbygcc(Debian8.3.0-6)8.3.0,64-bitbash-4.4$exitexit$#Let'stovisittheNodePortURLusingtheminikubeservicecommand$minikube service list$minikubeservicelist|---------------|------------------------------------|--------------|----------------------------||NAMESPACE|NAME|TARGETPORT|URL||default|awx-demo-postgres|Nonodeport||default|awx-demo-service|http/80|http://192.168.39.79:32747||default|default|awx-operator-metrics|Nonodeport|||default|kubernetes|Nonodeport||ingress-nginx|ingress-nginx-controller|http/80|http://192.168.39.79:32732||||https/443|http://192.168.39.79:30947||ingress-nginx|ingress-nginx-controller-admission|Nonodeport||kube-system|kube-dns|Nonodeport|$minikubeserviceawx-demo-service--urlhttp://192.168.39.79:32747$#$#L$#Le$#Let$#Let'$#Let's$#Let'scheck$#Let'scheckthe$#Let'schecktheAPI$#Let'schecktheAPInow$curl-L-q$(minikubeserviceawx-demo-service--url)/api/v2/ping2>/dev/null|python-mjson.tool{"ha":false,"version":"19.1.0","active_node":"awx-demo-77d96f88d5-rbqz9","install_uuid":"352415ad-564e-41cc-bbc2-85bd9169342e","instances":[{"node":"awx-demo-77d96f88d5-rbqz9","uuid":"00000000-0000-0000-0000-000000000000","heartbeat":"2021-05-25T05:00:46.328860Z","capacity":0,"version":"19.1.0"}],"instance_groups":["name":"tower","instances":[]]}$#S$#Sweet!!$#Sweet!!You$#Sweet!!Yougot$#Sweet!!Yougotit!!$#Sweet!!Yougotit!!:)$#Nowlet'sdeployanotherAWXinstanceusingaNGINXIngressController$#OncewehaveitinaRunningstate,wenowhaveaningressresourcecreated$catawx-nginx-ingress.ymlname:awx-nginxservice_type:clusteripingress_type:ingresshostname:my-awx.example.com$kubectlapply-fawx-nginx-ingress.ymlawx.awx.ansible.com/awx-nginxcreated$kubectlgetawxNAMEAGEawx-demo2m22sawx-nginx4sawx-demo-77d96f88d5-rbqz94/4Running02mawx-demo-postgres-01/1Running02m10sawx-nginx-postgres-00/1Pending00sawx-nginx-postgres-00/1ContainerCreating00sawx-nginx-postgres-01/1Running03sawx-nginx-cb66586f-m6qrj0/4Pending00sawx-nginx-cb66586f-m6qrj0/4ContainerCreating00sawx-nginx-cb66586f-m6qrj4/4Running05s$#Now$#Nowwe$#Nowwehave$#Nowwehavethe$#Nowwehavetheservices$#Nowwehavetheservicescreated$#Nowwehavetheservicescreatedand$#Nowwehavetheservicescreatedandthe$#Nowwehavetheservicescreatedandthepods$#Nowwehavetheservicescreatedandthepodsrunningawx-demo-77d96f88d5-rbqz94/4Running02m43sawx-demo-postgres-01/1Running02m53sawx-nginx-cb66586f-m6qrj4/4Running027sawx-nginx-postgres-01/1Running037sNAMETYPECLUSTER-IPEXTERNAL-IPPORT(S)AGEawx-demo-postgresClusterIPNone<none>5432/TCP2m55sawx-demo-serviceNodePort10.98.233.228<none>80:32747/TCP2m47sawx-nginx-postgresClusterIPNone<none>5432/TCP39sawx-nginx-serviceClusterIP10.100.157.46<none>80/TCP31s|default|awx-nginx-postgres|Nonodeport||default|awx-nginx-service|Nonodeport|$#Let'snow$#Let'snowinspect$#Let'snowinspectthe$#Let'snowinspecttheingress$kubectlgetingressesNAMECLASSHOSTSADDRESSPORTSAGEawx-nginx-ingress<none>my-awx.example.com192.168.39.798054s$kubectldescribeingressawx-nginx-ingressName:awx-nginx-ingressNamespace:defaultAddress:192.168.39.79Defaultbackend:default-http-backend:80(<error:endpoints"default-http-backend"notfound>)Rules:HostPathBackends----------------my-awx.example.com/awx-nginx-service:80(10.244.0.19:8052)Annotations:<none>Events:TypeReasonAgeFromMessage-------------------------NormalSync56s(x2over58s)nginx-ingress-controllerScheduledforsync$#Withtheingressruleinplace,weshouldbeabletoaccessit$#Forthat,let'saddtheentryonthe/etc/hosts$kubectlgetingressesawx-nginx-ingress|grep-vNAME|awk-F'''{print$4""$3}'192.168.39.79my-awx.example.com$kubectlgetingressesawx-nginx-ingress|grep-vNAME|awk-F'''{print$4""$3}'|sudotee-a/etc/hosts$curl-L-qhttp://my-awx.example.com/api/v2/ping2>/dev/null|python-mjson.tool"active_node":"awx-nginx-cb66586f-m6qrj","install_uuid":"3f21fe54-5f12-4546-8200-b8976cca45f9","node":"awx-nginx-cb66586f-m6qrj","heartbeat":"2021-05-25T05:03:02.224788Z",$#ThanksforwatchingandhappyAnsibleautomation!$# For this demo, I'm running it on Fedora 34 with kvm2$# Please note the options passed to the minikube start command$# shall be different for each environment.$# Refer to the Minikube documentation for further assistance$# To speed things up on this video, here is the command I used to start my minikube version$# minikube start --driver=kvm2 --addons=ingress --cpus=4 --cni=flannel \$# --install-addons=true --kubernetes-version=stable --memory=12g$minikube start🐳PreparingKubernetesv1.20.2onDocker20.10.6...|🐳PreparingKubernetesv1.20.2onDocker20.10.6.../🐳PreparingKubernetesv1.20.2onDocker20.10.6...-🐳PreparingKubernetesv1.20.2onDocker20.10.6...\$# Now let's check if the pods are on the running state.$# It might take a few seconds to get all of them up and running on your end$kubectl get nodes$kubectl get pods -Aingress-nginxkube-systemkube-systemstorage-provisioner1/1$# For this demo, I'm deploying the awx-operator from the devel branch$# but please refer to the documentation on how deploy a stable release$kubectl apply -f awx-operator.yaml$# Let's wait the container image to be download and the awx-operator$# should be in a running state$k$ku$kub$kube$kubec$kubect$kubectlg$kubectlge$kubectlgetp$kubectlgetpo$kubectlgetpod$kubectlgetpods-$# Now first, let's create a AWX instance with using a NodePort service$# This process will take a few minutes to finish, but we should have a$# PostgreSQL statefulset running and a AWX pod with 4 containers in Running state$cat awx-demo.yml$kubectl apply -f awx-demo.yml$# In the meantime, you can inspect the awx-operator logs as well$# kubectl logs -f deploy/awx-operator$# Allow some time to get the images pulled and for the database migration$# Go get a coffee :)$kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -w$# Now that everything is in the running state, we should be good :)$# Let's do a quick test to check if things are looking good$kubectl iexec awx-demo /bin/bashbash-4.4$ebash-4.4$exbash-4.4$exi$# Let's to visit the NodePort URL using the minikube service command|NAMESPACE|NAME||default|awx-demo-service|http/80|||https/443||kube-system$minikube service awx-demo-service --url$#Let'sc$#Let'sch$#Let'sche$#Let'schec$#Let'scheckt$#Let'scheckth$#Let'schecktheA$#Let'schecktheAP$#Let'schecktheAPIn$#Let'schecktheAPIno$curl -L -q $(minikube service awx-demo-service --url)/api/v2/ping 2>/dev/null | python -m json.tool$#Se$#Sw$#Swe$#Swee$#Sweet$#Sweet!$#Sweet!!Y$#Sweet!!Yo$#Sweet!!Youg$#Sweet!!Yougo$#Sweet!!Yougoti$#Sweet!!Yougotit$#Sweet!!Yougotit!$#Sweet!!Yougotit!!:$# Now let's deploy another AWX instance using a NGINX Ingress Controller$# Once we have it in a Running state, we now have an ingress resource created$cat awx-nginx-ingress.yml$kubectl apply -f awx-nginx-ingress.yml$kubectl get awx$kubectl get pods -l "app.kubernetes.io/managed-by=awx-operator" -w$#N$#No$#Noww$#Nowweh$#Nowweha$#Nowwehav$#Nowwehavet$#Nowwehaveth$#Nowwehavethes$#Nowwehavethese$#Nowwehavetheser$#Nowwehavetheserv$#Nowwehavetheservi$#Nowwehavetheservic$#Nowwehavetheservice$#Nowwehavetheservicesc$#Nowwehavetheservicescr$#Nowwehavetheservicescre$#Nowwehavetheservicescrea$#Nowwehavetheservicescreat$#Nowwehavetheservicescreate$#Nowwehavetheservicescreateda$#Nowwehavetheservicescreatedan$#Nowwehavetheservicescreatedandt$#Nowwehavetheservicescreatedandth$#Nowwehavetheservicescreatedandthep$#Nowwehavetheservicescreatedandthepo$#Nowwehavetheservicescreatedandthepod$#Nowwehavetheservicescreatedandthepodsr$#Nowwehavetheservicescreatedandthepodsru$#Nowwehavetheservicescreatedandthepodsrun$#Nowwehavetheservicescreatedandthepodsrunn$#Nowwehavetheservicescreatedandthepodsrunni$#Nowwehavetheservicescreatedandthepodsrunninawx-demo-serviceNodePort|default|awx-demo-postgres||default|awx-nginx-service||default|awx-operator-metrics||default|kubernetes||ingress-nginx|ingress-nginx-controller|http/80||ingress-nginx|ingress-nginx-controller-admission|Nonodeport|---------------|------------------------------------|$#Let'sn$#Let'sno$#Let'snowi$#Let'snowin$#Let'snowins$#Let'snowinsp$#Let'snowinspe$#Let'snowinspec$#Let'snowinspectt$#Let'snowinspectth$#Let'snowinspectthei$#Let'snowinspectthein$#Let'snowinspecttheing$#Let'snowinspecttheingr$#Let'snowinspecttheingre$#Let'snowinspecttheingres$kubectl get ingresses$kubectl describe ingress awx-nginx-ingress$# With the ingress rule in place, we should be able to access it$# For that, let's add the entry on the$#Forthat,let'saddtheentryonthe$#Forthat,let'saddtheentryonthe/$#Forthat,let'saddtheentryonthe/e$#Forthat,let'saddtheentryonthe/et$#Forthat,let'saddtheentryonthe/etc$#Forthat,let'saddtheentryonthe/etc/$#Forthat,let'saddtheentryonthe/etc/h$#Forthat,let'saddtheentryonthe/etc/ho$#Forthat,let'saddtheentryonthe/etc/hos$#Forthat,let'saddtheentryonthe/etc/host$kubectl get ingresses awx-nginx-ingress | grep -v NAME | awk -F' ' '{print $4 " " $3 }'$kubectl get ingresses awx-nginx-ingress | grep -v NAME | awk -F' ' '{print $4 " " $3 }' | sudo tee -a /etc/hosts$curl -L -q http://my-awx.example.com/api/v2/ping 2>/dev/null | python -m json.tool$# Thanks for watching and happy Ansible automation! \ No newline at end of file diff --git a/docs/user-guide/advanced-configuration/mesh-ingress.md b/docs/user-guide/advanced-configuration/mesh-ingress.md index 8ec2ebf8..9932f0fb 100644 --- a/docs/user-guide/advanced-configuration/mesh-ingress.md +++ b/docs/user-guide/advanced-configuration/mesh-ingress.md @@ -9,7 +9,7 @@ For more information about remote execution and hop nodes and how to create them - AWX operator version > 2.11.0 - AWX > 23.8.0 -## Deploy and configure AWXMeshIngress +## Deploy and configure AscenderMeshIngress !!! note The mesh ingress uses the `control_plane_ee_image` and `image_pull_policy` fields of the Ascender instance to determine image and policy to be adopted. @@ -18,7 +18,7 @@ For more information about remote execution and hop nodes and how to create them ### On Red Hat OpenShift with Operator managed Route -To deploy a mesh ingress on OpenShift, create the AWXMeshIngress resource on the namespace where your Ascender instance is running on. +To deploy a mesh ingress on OpenShift, create the AscenderMeshIngress resource on the namespace where your Ascender instance is running on. Example: @@ -34,9 +34,9 @@ spec: ### On Kubernetes with Operator managed Ingress (NGINX) -To deploy a mesh ingress on Kubernetes cluster which has [NGINX Ingress Controller](https://www.nginx.com/products/nginx-ingress-controller/), create the AWXMeshIngress resource on the namespace where your Ascender instance is running on. +To deploy a mesh ingress on Kubernetes cluster which has [NGINX Ingress Controller](https://www.nginx.com/products/nginx-ingress-controller/), create the AscenderMeshIngress resource on the namespace where your Ascender instance is running on. -Note that AWXMeshIngress requires [SSL Passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) enabled which is disabled by default. Ensure it is enabled on your NGINX Ingress Controller. +Note that AscenderMeshIngress requires [SSL Passthrough](https://kubernetes.github.io/ingress-nginx/user-guide/tls/#ssl-passthrough) enabled which is disabled by default. Ensure it is enabled on your NGINX Ingress Controller. By specifying `ingress_controller` as `nginx`, Ascender Operator will generate Ingress resource that has `nginx.ingress.kubernetes.io/ssl-passthrough` annotation set to `"true"`. @@ -60,9 +60,9 @@ spec: ### On Kubernetes with Operator managed Ingress (Traefik) -To deploy a mesh ingress on Kubernetes cluster which has [Traefik Kubernetes Ingress provider](https://doc.traefik.io/traefik/providers/kubernetes-ingress/), create the AWXMeshIngress resource on the namespace where your Ascender instance is running on. +To deploy a mesh ingress on Kubernetes cluster which has [Traefik Kubernetes Ingress provider](https://doc.traefik.io/traefik/providers/kubernetes-ingress/), create the AscenderMeshIngress resource on the namespace where your Ascender instance is running on. -Note that by deploying following AWXMeshIngress, Ascender Operator will generate IngressRouteTCP resource that has `websecure` as an `entryPoints`. If this does not satisfy your requirement, refer to [User managed Ingress section](#on-kubernetes-with-user-managed-ingress) and create an IngressRouteTCP resource manually. +Note that by deploying following AscenderMeshIngress, Ascender Operator will generate IngressRouteTCP resource that has `websecure` as an `entryPoints`. If this does not satisfy your requirement, refer to [User managed Ingress section](#on-kubernetes-with-user-managed-ingress) and create an IngressRouteTCP resource manually. Example: @@ -90,7 +90,7 @@ spec: ### On Kubernetes with User managed Ingress -To deploy a mesh ingress on Kubernetes cluster, create the AWXMeshIngress resource on the namespace where your Ascender instance is running on. +To deploy a mesh ingress on Kubernetes cluster, create the AscenderMeshIngress resource on the namespace where your Ascender instance is running on. Alternatively, if you wish to create your own Ingress resource, you can deploy a mesh ingress with `ingress_type` set to `none` and then manually create an Ingress resource with any configuration. @@ -116,8 +116,8 @@ The requirements for user managed Ingress resource are as follows: - Supports WebSocket - SSL/TLS Passthrough enabled - Accessible over port `443` -- Having the same hostname as `external_hostname` in the AWXMeshIngress resource -- Routing the traffic to port `27199` of the Service of the same name as the AWXMeshIngress resource +- Having the same hostname as `external_hostname` in the AscenderMeshIngress resource +- Routing the traffic to port `27199` of the Service of the same name as the AscenderMeshIngress resource These are example Ingress resources for NGINX and Traefik. @@ -166,7 +166,7 @@ spec: ## Validating setup of Mesh Ingress -After AWXMeshIngress has been successfully created, a new Instance with the same name will be registered to Ascender and will be visible on the Instance UI page +After AscenderMeshIngress has been successfully created, a new Instance with the same name will be registered to Ascender and will be visible on the Instance UI page ![mesh ingress instance on Ascender UI](mesh-ingress-instance-on-awx-ui.png) @@ -186,21 +186,21 @@ For more information about how to create external remote execution and hop nodes ## Custom Resource Definitions -### AWXMeshIngress +### AscenderMeshIngress -AWXMeshIngress controls the deployment and configuration of mesh ingress on Ascender +AscenderMeshIngress controls the deployment and configuration of mesh ingress on Ascender | Name | Description | | ----------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **`apiVersion`** | ascender.ansible.com/v1alpha1 | | **`kind`** | AscenderMeshIngress | | **`metadata`** ([ObjectMeta](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/object-meta/#ObjectMeta)) | Standard object's metadata. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata) | -| **`spec`** ([AWXMeshIngressSpec](#awxmeshingressspec)) | Spec is the desired state of the AWXMeshIngress. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status) | -| **`status`** ([AWXMeshIngressStatus](#awxmeshingressstatus)) | Status is the current state of the AWXMeshIngress. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status) | +| **`spec`** ([AscenderMeshIngressSpec](#ascendermeshingressspec)) | Spec is the desired state of the AscenderMeshIngress. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status) | +| **`status`** ([AscenderMeshIngressStatus](#ascendermeshingressstatus)) | Status is the current state of the AscenderMeshIngress. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status) | -#### AWXMeshIngressSpec +#### AscenderMeshIngressSpec -AWXMeshIngressSpec is the description of the configuration for AWXMeshIngress. +AscenderMeshIngressSpec is the description of the configuration for AscenderMeshIngress. | Name | Description | Default | | ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- | @@ -213,17 +213,17 @@ AWXMeshIngressSpec is the description of the configuration for AWXMeshIngress. | **`ingress_controller`** (string) | Special configuration for specific Ingress Controllers. This parameter is ignored when `ingress_type` is `Route` | `""` | | **`ingress_class_name`** (string) | The name of ingress class to use instead of the cluster default. see [IngressSpec](https://kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/#IngressSpec). This parameter is ignored when `ingress_type` is `Route` | `""` | -#### AWXMeshIngressStatus +#### AscenderMeshIngressStatus -AWXMeshIngressStatus describe the current state of the AWXMeshIngress. +AscenderMeshIngressStatus describe the current state of the AscenderMeshIngress. -### AWXMeshIngressList +### AscenderMeshIngressList -AWXMeshIngressList is a collection of AWXMeshIngress. +AscenderMeshIngressList is a collection of AscenderMeshIngress. | Name | Description | | ----------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`items`** ([AWXMeshIngress](#awxmeshingress)) | items is the list of Ingress. | +| **`items`** ([AscenderMeshIngress](#ascendermeshingress)) | items is the list of Ingress. | | **`apiVersion`** (string) | APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources) | | **`kind`** (string) | Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds) | | **`metadata`** ([ListMeta](https://kubernetes.io/docs/reference/kubernetes-api/common-definitions/list-meta/#ListMeta)) | Standard object's metadata. [More info](https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata) | diff --git a/roles/installer/defaults/main.yml b/roles/installer/defaults/main.yml index bbf25c49..10a94ff8 100644 --- a/roles/installer/defaults/main.yml +++ b/roles/installer/defaults/main.yml @@ -57,7 +57,7 @@ ingress_controller: '' # process like cert-manager (enabled via annotations) will store the TLS # certificate and key. # ingress_hosts: -# - hostname: awx-demo.example.com +# - hostname: ascender-demo.example.com # tls_secret: example-com-tls ingress_hosts: ''