Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
7 changes: 7 additions & 0 deletions ascender-demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
apiVersion: ascender.ansible.com/v1beta1
kind: Ascender
metadata:
name: ascender-demo
spec:
service_type: nodeport
7 changes: 7 additions & 0 deletions ascendermeshingress-demo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
apiVersion: ascender.ansible.com/v1alpha1
kind: AscenderMeshIngress
metadata:
name: ascender-mesh-ingress-demo
spec:
deployment_name: ascender-demo
7 changes: 0 additions & 7 deletions awx-demo.yml

This file was deleted.

7 changes: 0 additions & 7 deletions awxmeshingress-demo.yml

This file was deleted.

1 change: 0 additions & 1 deletion docs/awx-demo.svg

This file was deleted.

42 changes: 21 additions & 21 deletions docs/user-guide/advanced-configuration/mesh-ingress.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand All @@ -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:

Expand All @@ -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"`.

Expand All @@ -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:

Expand Down Expand Up @@ -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.

Expand All @@ -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.

Expand Down Expand Up @@ -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)

Expand All @@ -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 |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------- |
Expand All @@ -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) |
2 changes: 1 addition & 1 deletion roles/installer/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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: ''

Expand Down