@@ -10,47 +10,102 @@ In the following we walk you through installing an ACK service controller.
1010 for a particular AWS API.
1111
1212Each ACK service controller is packaged into a separate container image,
13- published on the [ ` amazon/aws-controllers-k8s ` DockerHub repository] [ 0 ] .
13+ published on a [ public ECR repository] [ controller-repo ] .
1414
15- [ 0 ] : https://hub.docker.com/r/amazon/ aws-controllers-k8s
15+ [ controller-repo ] : https://gallery.ecr.aws/ aws-controllers-k8s/controller
1616
1717Individual ACK service controllers are tagged with ` $SERVICE-$VERSION ` Docker
1818image tags, allowing you to download/test specific ACK service controllers. For
1919example, if you wanted to test the ` v0.1.0 ` release image of the ACK service
20- controller for S3, you would pull the ` amazon/aws-controllers-k8s:s3-v0.1.0 `
21- image.
20+ controller for S3, you would pull the
21+ ` public.ecr.aws/aws-controllers-k8s/controller:s3-v0.1.0 ` image.
22+
23+ !!! note "No 'latest' tag"
24+ It is [ not good practice] [ no-latest-tag ] to rely on a ` :latest ` default
25+ image tag. There are actually no images tagged with a ` :latest ` tag in our
26+ image repositories. You should always specify a ` $SERVICE-$VERSION ` tag
27+ when referencing an ACK service controller image.
28+
29+ [ no-latest-tag ] : https://vsupalov.com/docker-latest-tag/
2230
2331## Helm (recommended)
2432
2533The recommended way to install an ACK service controller for Kubernetes is to
26- use Helm 3. Please ensure you have installed Helm 3 to your local environment
27- before running these steps.
34+ use Helm 3. Please ensure you have [ installed Helm 3] [ install-helm ] to your
35+ local environment before running these steps.
2836
29- Before installing an ACK service controller, ensure you have added the
30- AWS Controllers for Kubernetes Helm repository:
37+ [ install-helm ] : https://helm.sh/docs/intro/install/
3138
32- ```
33- helm repo add ack https://aws.github.io/aws-controllers-k8s/charts
34- ```
39+ Each ACK service controller has a separate Helm chart that installs—as a
40+ Kubernetes ` Deployment ` —the ACK service controller, necessary custom resource
41+ definitions (CRDs), Kubernetes RBAC manifests, and other supporting artifacts.
42+
43+ To view the Helm charts available for installation, check the ECR public
44+ repository for the [ ACK Helm charts] [ charts-repo ] . Click on the "Image tags"
45+ tab and take a note of the Helm chart tag for the service controller and
46+ version you wish to install.
47+
48+ [ charts-repo ] : https://gallery.ecr.aws/aws-controllers-k8s/chart
3549
36- Likewise, each ACK service controller has a separate Helm chart that
37- installs—as a Kubernetes ` Deployment ` —the ACK service controller, necessary
38- custom resource definitions (CRDs), Kubernetes RBAC manifests, and other
39- supporting artifacts.
50+ Before installing a Helm chart, you must first make the Helm chart available on
51+ the deployment host. To do so, use the ` helm chart pull ` and `helm chart
52+ export` commands:
4053
41- You may install a particular ACK service controller using the ` helm install `
54+ ``` bash
55+ export HELM_EXPERIMENTAL_OCI=1
56+ export SERVICE=s3
57+ export RELEASE_VERSION=v0.0.1
58+ export CHART_EXPORT_PATH=/tmp/chart
59+ export CHART_REPO=public.ecr.aws/aws-controllers-k8s/chart
60+ export CHART_REF=$CHART_REPO :$SERVICE -$RELEASE_VERSION
61+
62+ mkdir -p $CHART_EXPORT_PATH
63+
64+ helm chart pull $CHART_REF
65+ helm chart export $CHART_REF --destination $CHART_EXPORT_PATH
66+ ```
67+
68+ You then install a particular ACK service controller using the ` helm install `
4269CLI command:
4370
71+ ``` bash
72+ export ACK_K8S_NAMESPACE=ack-system
73+
74+ kubectl create namespace $ACK_K8S_NAMESPACE
75+
76+ helm install --namespace $ACK_K8S_NAMESPACE ack-$SERVICE -controller \
77+ $CHART_EXPORT_PATH /ack-$SERVICE -controller
78+ ```
79+
80+ You will see the Helm chart installed:
81+
4482```
45- helm install [--namespace $KUBERNETES_NAMESPACE] ack-$SERVICE-controller ack/ack-$SERVICE-controller
83+ $ helm install --namespace $ACK_K8S_NAMESPACE ack-$SERVICE-controller $CHART_EXPORT_PATH/ack-$SERVICE-controller
84+ NAME: ack-s3-controller
85+ LAST DEPLOYED: Thu Dec 17 13:09:17 2020
86+ NAMESPACE: ack-system
87+ STATUS: deployed
88+ REVISION: 1
89+ TEST SUITE: None
4690```
4791
48- for example, if you wanted to install the latest ACK service controller for S3
49- into the "ack-system" Kubernetes namespace, you would execute:
92+ You may then verify the Helm chart was installed using the ` helm list ` command:
93+
94+ ``` bash
95+ helm list --namespace $ACK_K8S_NAMESPACE -o yaml
96+ ```
5097
98+ you should see your newly-deployed Helm chart release:
5199
52- ``` sh
53- helm install --namespace ack-system ack-s3-controller ack/ack-s3-controller
100+ ```
101+ $ helm list --namespace $ACK_K8S_NAMESPACE -o yaml
102+ - app_version: v0.0.1
103+ chart: ack-s3-controller-v0.0.1
104+ name: ack-s3-controller
105+ namespace: ack-system
106+ revision: "1"
107+ status: deployed
108+ updated: 2020-12-17 13:09:17.309002201 -0500 EST
54109```
55110
56111## Static Kubernetes manifests
@@ -64,19 +119,4 @@ release from the [list of releases][1] for AWS Controllers for Kubernetes.
64119
65120[ 1 ] : https://github.com/aws/aws-controllers-k8s/releases
66121
67- You will see a list of Assets for the release. One of those Assets will be
68- named ` services/$SERVICE/all-resources.yaml ` . For example, for the ACK service
69- controller for S3, there will be an Asset named
70- ` services/s3/all-resources.yaml ` attached to the release. Click on the link to
71- download the YAML file. This YAML file may be fed to ` kubectl apply -f `
72- directly to install the service controller, any CRDs that it manages, and all
73- necessary Kubernetes RBAC manifests.
74-
75- For example:
76-
77- ``` sh
78- kubectl apply -f https://github.com/aws/aws-controllers-k8s/releases/download/v0.0.1/services/s3/all-resources.yaml
79- ```
80-
81- Once you've installed one or more ACK service controllers, make sure to
82- [ configure permissions] ( ../authorization#configure-permissions ) , next.
122+ TODO(jaypipes)
0 commit comments