You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/configuration.md
+1-4Lines changed: 1 addition & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ A sample IAM policy, with the minimum permissions to run the controller, can be
13
13
14
14
By default, all ingress resources in your cluster are seen by the controller. However, only ingress resources that contain the [required annotations](https://github.com/kubernetes-sigs/aws-alb-ingress-controller/blob/master/docs/ingress-resources.md#required-annotations) will be satisfied by the ALB Ingress Controller.
15
15
16
-
You can further limit the ingresses your controller has access to. The options available are limiting the ingress class (`ingress.class`) or limiting the namespace watched (`--watch-namespace=`). Each approach is detailed below.
16
+
You can further limit the ingresses your controller has access to. The options available are limiting the ingress class (`ingress.class`) or limiting the namespace watched (`--watch-namespace=`). Each approach is detailed below.
That ConfigMap is kept in `default` if unspecified, but can moved to another with the `ALB_CONTROLLER_RESTRICT_SCHEME_CONFIG_NAMESPACE` environment variable. This can also be passed to the command line via the `restrict-scheme-namespace` flag.
Copy file name to clipboardExpand all lines: docs/setup.md
+74-71Lines changed: 74 additions & 71 deletions
Original file line number
Diff line number
Diff line change
@@ -18,19 +18,24 @@ An example policy with the minimum rights can be found at [examples/iam-policy.j
18
18
19
19
The controller determines subnets to deploy each ALB to based on an annotation or auto-detection.
20
20
21
-
- annotation: `alb.ingress.kubernetes.io/subnets` may be specified in each ingress resource with the subnet IDs or `Name` tags. This allows for flexibility in where ALBs land. This list of subnets must include 2 or more that exist in unique availability zones. See the [annotations documentation](ingress-resources.md#annotations) for more details.
21
+
##### Via annotation
22
+
`alb.ingress.kubernetes.io/subnets` may be specified in each ingress resource with the subnet IDs or `Name` tags. This allows for flexibility in where ALBs land. This list of subnets must include 2 or more that exist in unique availability zones. See the [annotations documentation](ingress-resources.md#annotations) for more details.
22
23
23
-
- auto-detection: When subnet annotations are not present, the controller will attempt to choose the best subnets for deploying the ALBs. It uses the following tag criteria to determine the subnets it should use.
24
+
##### Via tags on the subnets
25
+
When subnet annotations are not present, the controller will attempt to choose the best subnets for deploying the ALBs. It uses the following tag criteria to determine the subnets it should use.
24
26
25
-
- `kubernetes.io/cluster/$CLUSTER_NAME`=`shared` where `$CLUSTER_NAME` matches the `CLUSTER_NAME` environment variable from the `alb-ingress-controller.yaml` manifest.
27
+
-`kubernetes.io/cluster/$CLUSTER_NAME` equal to `shared`or `owned`. `$CLUSTER_NAME`must match the `CLUSTER_NAME` environment variable on the controller.
26
28
27
-
- `kubernetes.io/role/alb-ingress`=` ` where the value is empty.
29
+
And one of the following:
30
+
31
+
-`kubernetes.io/role/internal-elb: ""` For internal load balancers
32
+
-`kubernetes.io/role/elb = ""` For internet-facing load balancers
28
33
29
34
### Security Group Selection
30
35
31
36
The controller determines if it should create and manage security groups or use existing ones in AWS based on the presence of an annotation. When `alb.ingress.kubernetes.io/security-groups` is present, the list of security groups is assigned to the ALB instance. When the annotation is not present, the controller will create a security group with appropriate ports allowing access to `0.0.0.0/0` and attached to the ALB. It will also create a security group for instances that allows all TCP traffic when the source is the security group created for the ALB.
32
37
33
-
## helm Deployments
38
+
## Helm Deployments
34
39
35
40
You must have the [Helm App Registry plugin](https://coreos.com/apps) installed for these instructions to work.
A default backend service is required for every ingress controller. The alb-ingress-controller does not make use of it, but will not be able to run the ingress libraries without it. To get around this, deploy a dummy default backend to the cluster. The following example will deploy one in `kube-system`; you may wish to adjust it.
44
51
45
-
A default backend service is required for every ingress controller. The alb-ingress-controller does not make use of it, but will not be able to run the ingress libraries without it. To get around this, deploy a dummy default backend to the cluster. The following example will deploy one in `kube-system`; you may wish to adjust it.
- `AWS_REGION`: region in AWS this cluster exists.
62
67
63
-
```yaml
64
-
- name: AWS_REGION
65
-
value: us-west-1
66
-
```
68
+
```yaml
69
+
- name: AWS_REGION
70
+
value: us-west-1
71
+
```
67
72
68
-
- `CLUSTER_NAME`: name of the cluster. If doing auto-detection of subnets (described in prerequisites above) `CLUSTER_NAME` must match the AWS tags associated with the subnets you wish ALBs to be provisioned.
73
+
- `CLUSTER_NAME`: name of the cluster. If doing auto-detection of subnets (described in prerequisites above) `CLUSTER_NAME` must match the AWS tags associated with the subnets you wish ALBs to be provisioned.
69
74
70
-
```yaml
71
-
- name: CLUSTER_NAME
72
-
value: devCluster
73
-
```
75
+
```yaml
76
+
- name: CLUSTER_NAME
77
+
value: devCluster
78
+
```
74
79
75
-
1. Deploy the alb-ingress-controller manifest.
80
+
1. Deploy the alb-ingress-controller manifest.
76
81
77
-
```
78
-
$ kubectl apply -f alb-ingress-controller.yaml
79
-
```
82
+
```
83
+
$ kubectl apply -f alb-ingress-controller.yaml
84
+
```
80
85
81
-
1. Verify the deployment was successful and the controller started.
86
+
1. Verify the deployment was successful and the controller started.
82
87
83
-
```bash
84
-
$ kubectl logs -n kube-system \
85
-
$(kubectl get po -n kube-system | \
86
-
egrep -o alb-ingress[a-zA-Z0-9-]+) | \
87
-
egrep -o '\[ALB-INGRESS.*$'
88
-
```
88
+
```bash
89
+
$ kubectl logs -n kube-system \
90
+
$(kubectl get po -n kube-system | \
91
+
egrep -o alb-ingress[a-zA-Z0-9-]+) | \
92
+
egrep -o '\[ALB-INGRESS.*$'
93
+
```
89
94
90
-
Should display output similar to the following.
95
+
Should display output similar to the following.
91
96
92
-
```
93
-
[ALB-INGRESS] [controller] [INFO]: Log level read as "", defaulting to INFO. To change, set LOG_LEVEL environment variable to WARN, ERROR, or DEBUG.
94
-
[ALB-INGRESS] [controller] [INFO]: Ingress class set to alb
95
-
[ALB-INGRESS] [ingresses] [INFO]: Build up list of existing ingresses
96
-
[ALB-INGRESS] [ingresses] [INFO]: Assembled 0 ingresses from existing AWS resources
97
-
```
97
+
```
98
+
[ALB-INGRESS] [controller] [INFO]: Log level read as "", defaulting to INFO. To change, set LOG_LEVEL environment variable to WARN, ERROR, or DEBUG.
99
+
[ALB-INGRESS] [controller] [INFO]: Ingress class set to alb
100
+
[ALB-INGRESS] [ingresses] [INFO]: Build up list of existing ingresses
101
+
[ALB-INGRESS] [ingresses] [INFO]: Assembled 0 ingresses from existing AWS resources
102
+
```
98
103
99
104
## external-dns Deployment
100
105
101
106
[external-dns](https://github.com/kubernetes-incubator/external-dns) provisions DNS records based on the host information. This project will setup and manage records in Route 53 that point to controller deployed ALBs.
102
107
108
+
1. Ensure your instance has the correct IAM permission required for external-dns. See https://github.com/kubernetes-incubator/external-dns/blob/master/docs/tutorials/aws.md#iam-permissions.
103
109
104
-
1. Ensure your instance has the correct IAM permission required for external-dns. See https://github.com/kubernetes-incubator/external-dns/blob/master/docs/tutorials/aws.md#iam-permissions.
0 commit comments