diff --git a/.circleci/config.yml b/.circleci/config.yml index f1589c308..fd0d5d426 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -16,16 +16,19 @@ jobs: curl -L https://github.com/instrumenta/kubeval/releases/latest/download/kubeval-linux-amd64.tar.gz | tar xz && sudo mv kubeval /bin/kubeval - run: name: Install helm - command: curl -L https://storage.googleapis.com/kubernetes-helm/helm-v2.14.3-linux-amd64.tar.gz | tar xz && sudo mv linux-amd64/helm /bin/helm && sudo rm -rf linux-amd64 + command: curl -L https://storage.googleapis.com/kubernetes-helm/helm-v2.15.0-linux-amd64.tar.gz | tar xz && sudo mv linux-amd64/helm /bin/helm && sudo rm -rf linux-amd64 - run: name: Initialize helm command: helm init --client-only --kubeconfig=$HOME/.kube/kubeconfig + - run: + name: Install helmv3 + command: curl -sSL https://get.helm.sh/helm-v3.0.0-beta.5-linux-amd64.tar.gz | tar xz && sudo mv linux-amd64/helm /bin/helmv3 && sudo rm -rf linux-amd64 - run: name: Lint stable charts command: | helm lint ./stable/* - run: - name: Validate stable charts + name: Validate stable charts with Helm v2 command: | STABLE="$(git rev-parse --show-toplevel)/stable" cd ${STABLE} @@ -33,6 +36,15 @@ jobs: echo "Validating chart ${d}" helm template ${STABLE}/${d} | kubeval --strict --ignore-missing-schemas done + - run: + name: Validate stable charts with Helm v3 + command: | + STABLE="$(git rev-parse --show-toplevel)/stable" + cd ${STABLE} + for d in */; do + echo "Validating chart ${d}" + helmv3 template ${STABLE}/${d} | kubeval --strict --ignore-missing-schemas + done - run: name: Package stable charts command: | diff --git a/docs/logo/amazon-eks.png b/docs/logo/amazon-eks.png new file mode 100644 index 000000000..db7e02089 Binary files /dev/null and b/docs/logo/amazon-eks.png differ diff --git a/docs/logo/aws.png b/docs/logo/aws.png new file mode 100644 index 000000000..e4a09ec72 Binary files /dev/null and b/docs/logo/aws.png differ diff --git a/stable/appmesh-controller/.helmignore b/stable/appmesh-controller/.helmignore index f0c131944..67e8e62bc 100644 --- a/stable/appmesh-controller/.helmignore +++ b/stable/appmesh-controller/.helmignore @@ -19,3 +19,4 @@ .project .idea/ *.tmproj +crds/kustomization.yaml \ No newline at end of file diff --git a/stable/appmesh-controller/Chart.yaml b/stable/appmesh-controller/Chart.yaml index 8fbf176fc..8e28cc3d7 100644 --- a/stable/appmesh-controller/Chart.yaml +++ b/stable/appmesh-controller/Chart.yaml @@ -1,6 +1,19 @@ -apiVersion: v2 +apiVersion: v1 name: appmesh-controller -description: The AWS App Mesh controller Helm chart for Kubernetes -type: application -version: 0.2.0 +description: App Mesh controller Helm chart for Kubernetes +version: 0.3.0 appVersion: 0.2.0 +home: https://github.com/aws/eks-charts +icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png +sources: + - https://github.com/aws/eks-charts +maintainers: + - name: Nicholas Turner + url: https://github.com/nckturner + email: nckturner@users.noreply.github.com + - name: Stefan Prodan + url: https://github.com/stefanprodan + email: stefanprodan@users.noreply.github.com +keywords: + - eks + - appmesh diff --git a/stable/appmesh-controller/README.md b/stable/appmesh-controller/README.md new file mode 100644 index 000000000..c031802b5 --- /dev/null +++ b/stable/appmesh-controller/README.md @@ -0,0 +1,90 @@ +# App Mesh Controller + +App Mesh controller Helm chart for Kubernetes + +## Prerequisites + +* Kubernetes >= 1.13 +* IAM policies + +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Effect": "Allow", + "Action": [ + "appmesh:*", + "servicediscovery:CreateService", + "servicediscovery:GetService", + "servicediscovery:RegisterInstance", + "servicediscovery:DeregisterInstance", + "servicediscovery:ListInstances", + "route53:GetHealthCheck", + "route53:CreateHealthCheck", + "route53:UpdateHealthCheck", + "route53:ChangeResourceRecordSets", + "route53:DeleteHealthCheck" + ], + "Resource": "*" + } + ] +} +``` + +## Installing the Chart + +Add the EKS repository to Helm: + +```sh +helm repo add eks https://aws.github.io/eks-charts +``` + +Install the App Mesh CRDs: + +```sh +kubectl apply -k github.com/aws/eks-charts/stable/appmesh-controller//crds?ref=master +``` + +Install the App Mesh CRD controller: + +```sh +helm upgrade -i appmesh-controller eks/appmesh-controller \ +--namespace appmesh-system +``` + +The [configuration](#configuration) section lists the parameters that can be configured during installation. + +## Uninstalling the Chart + +To uninstall/delete the `appmesh-controller` deployment: + +```console +$ helm delete --purge appmesh-controller +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the chart and their default values. + +Parameter | Description | Default +--- | --- | --- +`image.repository` | image repository | ` 602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/app-mesh-controller` +`image.tag` | image tag | `` +`image.pullPolicy` | image pull policy | `IfNotPresent` +`resources.requests/cpu` | pod CPU request | `100m` +`resources.requests/memory` | pod memory request | `64Mi` +`resources.limits/cpu` | pod CPU limit | `2000m` +`resources.limits/memory` | pod memory limit | `1Gi` +`affinity` | node/pod affinities | None +`nodeSelector` | node labels for pod assignment | `{}` +`tolerations` | list of node taints to tolerate | `[]` +`rbac.create` | if `true`, create and use RBAC resources | `true` +`rbac.pspEnabled` | If `true`, create and use a restricted pod security policy | `false` +`serviceAccount.create` | If `true`, create a new service account | `true` +`serviceAccount.name` | Service account to be used | None + + + diff --git a/stable/appmesh-controller/crds/kustomization.yaml b/stable/appmesh-controller/crds/kustomization.yaml new file mode 100644 index 000000000..3f1d1cbba --- /dev/null +++ b/stable/appmesh-controller/crds/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- crds.yaml diff --git a/stable/appmesh-inject/Chart.yaml b/stable/appmesh-inject/Chart.yaml index ffabe63e8..0ead53d30 100644 --- a/stable/appmesh-inject/Chart.yaml +++ b/stable/appmesh-inject/Chart.yaml @@ -1,6 +1,19 @@ -apiVersion: v2 +apiVersion: v1 name: appmesh-inject -description: AWS App Mesh Inject Helm chart for Kubernetes -type: application -version: 0.2.0 +description: App Mesh Inject Helm chart for Kubernetes +version: 0.3.0 appVersion: 0.2.0 +home: https://github.com/aws/eks-charts +icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png +sources: + - https://github.com/aws/eks-charts +maintainers: + - name: Nicholas Turner + url: https://github.com/nckturner + email: nckturner@users.noreply.github.com + - name: Stefan Prodan + url: https://github.com/stefanprodan + email: stefanprodan@users.noreply.github.com +keywords: + - eks + - appmesh diff --git a/stable/appmesh-inject/README.md b/stable/appmesh-inject/README.md new file mode 100644 index 000000000..8f4329d1e --- /dev/null +++ b/stable/appmesh-inject/README.md @@ -0,0 +1,84 @@ +# App Mesh Inject + +App Mesh inject Helm chart for Kubernetes + +## Prerequisites + +* Kubernetes >= 1.13 + +## Installing the Chart + +Add the EKS repository to Helm: + +```sh +helm repo add eks https://aws.github.io/eks-charts +``` + +Install the App Mesh CRDs: + +```sh +kubectl apply -k github.com/aws/eks-charts/stable/appmesh-controller//crds?ref=master +``` + +Install the App Mesh admission controller: + +```sh +helm upgrade -i appmesh-inject eks/appmesh-inject \ +--namespace appmesh-system \ +--set mesh.name=global +``` + +Optionally you can create a mesh at install time: + +```sh +helm upgrade -i appmesh-inject eks/appmesh-inject \ +--namespace appmesh-system \ +--set mesh.name=global \ +--set mesh.create=true +``` + +The [configuration](#configuration) section lists the parameters that can be configured during installation. + +## Uninstalling the Chart + +To uninstall/delete the `appmesh-inject` deployment: + +```console +helm delete --purge appmesh-inject +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the chart and their default values. + +Parameter | Description | Default +--- | --- | --- +`image.repository` | controller image repository | `602401143452.dkr.ecr.us-west-2.amazonaws.com/amazon/aws-app-mesh-inject` +`image.tag` | controller image tag | `` +`image.pullPolicy` | image pull policy | `IfNotPresent` +`resources.requests/cpu` | pod CPU request | `100m` +`resources.requests/memory` | pod memory request | `64Mi` +`resources.limits/cpu` | pod CPU limit | `2000m` +`resources.limits/memory` | pod memory limit | `1Gi` +`affinity` | node/pod affinities | None +`nodeSelector` | node labels for pod assignment | `{}` +`tolerations` | list of node taints to tolerate | `[]` +`rbac.create` | if `true`, create and use RBAC resources | `true` +`rbac.pspEnabled` | If `true`, create and use a restricted pod security policy | `false` +`serviceAccount.create` | If `true`, create a new service account | `true` +`serviceAccount.name` | Service account to be used | None +`sidecar.image.repository` | Envoy image repository | `840364872350.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-envoy` +`sidecar.image.tag` | Envoy image tag | `` +`sidecar.logLevel` | Envoy log level | `info` +`sidecar.resources` | Envoy container resources | `requests: cpu 10m memory 32Mi` +`init.image.repository` | Route manager image repository | `111345817488.dkr.ecr.us-west-2.amazonaws.com/aws-appmesh-proxy-route-manager` +`init.image.tag` | Route manager image tag | `` +`mesh.create` | If `true`, create mesh custom resource | `false` +`mesh.name` | The name of the mesh to use | `global` +`mesh.discovery` | The service discovery type to use, can be dns or cloudmap | `dns` +`tracing.enabled` | If `true`, Envoy will be configured with tracing | `false` +`tracing.provider` | The tracing provider can be x-ray, jaeger or datadog | `x-ray` +`tracing.address` | Jaeger or Datadog agent server address (ignored for X-Ray) | `appmesh-jaeger.appmesh-system` +`tracing.port` | Jaeger or Datadog agent port (ignored for X-Ray) | `9411` diff --git a/stable/appmesh-jaeger/Chart.yaml b/stable/appmesh-jaeger/Chart.yaml index 662843106..0eb739c02 100644 --- a/stable/appmesh-jaeger/Chart.yaml +++ b/stable/appmesh-jaeger/Chart.yaml @@ -1,6 +1,19 @@ -apiVersion: v2 +apiVersion: v1 name: appmesh-jaeger -description: AWS App Mesh Jaeger Helm chart for Kubernetes -type: application -version: 0.1.0 +description: App Mesh Jaeger Helm chart for Kubernetes +version: 0.2.0 appVersion: 1.14.0 +home: https://github.com/aws/eks-charts +icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png +sources: + - https://github.com/aws/eks-charts +maintainers: + - name: Nicholas Turner + url: https://github.com/nckturner + email: nckturner@users.noreply.github.com + - name: Stefan Prodan + url: https://github.com/stefanprodan + email: stefanprodan@users.noreply.github.com +keywords: + - eks + - appmesh diff --git a/stable/appmesh-jaeger/README.md b/stable/appmesh-jaeger/README.md new file mode 100644 index 000000000..22df3c8f8 --- /dev/null +++ b/stable/appmesh-jaeger/README.md @@ -0,0 +1,73 @@ +# App Mesh Jaeger + +App Mesh Jaeger Helm chart for Kubernetes + +## Prerequisites + +* Kubernetes >= 1.13 + +## Installing the Chart + +Add the EKS repository to Helm: + +```sh +helm repo add eks https://aws.github.io/eks-charts +``` + +Install App Mesh Jaeger: + +```sh +helm upgrade -i appmesh-jaeger eks/appmesh-jaeger \ +--namespace appmesh-system +``` + +For Jaeger persistent storage you can create a [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) +and use `--set persistentVolumeClaim.claimName=`. + +Enable Jaeger tracing for the App Mesh data plane: + +```sh +helm upgrade -i appmesh-inject eks/appmesh-inject \ +--namespace appmesh-system \ +--set tracing.enabled=true \ +--set tracing.provider=jaeger \ +--set tracing.address=appmesh-jaeger.appmesh-system \ +--set tracing.port=9411 +``` + +**Note** that you should restart all pods running inside the mesh after enabling tracing. + +The [configuration](#configuration) section lists the parameters that can be configured during installation. + +## Uninstalling the Chart + +To uninstall/delete the `appmesh-jaeger` deployment: + +```console +helm delete --purge appmesh-jaeger +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the chart and their default values. + +Parameter | Description | Default +--- | --- | --- +`image.repository` | image repository | `jaegertracing/all-in-one` +`image.tag` | image tag | `` +`image.pullPolicy` | image pull policy | `IfNotPresent` +`resources.requests/cpu` | pod CPU request | `100m` +`resources.requests/memory` | pod memory request | `256Mi` +`resources.limits/cpu` | pod CPU limit | `2000m` +`resources.limits/memory` | pod memory limit | `2Gi` +`affinity` | node/pod affinities | None +`nodeSelector` | node labels for pod assignment | `{}` +`tolerations` | list of node taints to tolerate | `[]` +`rbac.create` | if `true`, create and use RBAC resources | `true` +`rbac.pspEnabled` | If `true`, create and use a restricted pod security policy | `false` +`serviceAccount.create` | If `true`, create a new service account | `true` +`serviceAccount.name` | Service account to be used | None +`memory.maxTraces` | The amount of traces stored in memory | `40000` +`persistentVolumeClaim.claimName` | Specify an existing volume claim to be used for Badger data | None diff --git a/stable/appmesh-prometheus/Chart.yaml b/stable/appmesh-prometheus/Chart.yaml index a1580357d..6ccc5b06a 100644 --- a/stable/appmesh-prometheus/Chart.yaml +++ b/stable/appmesh-prometheus/Chart.yaml @@ -1,6 +1,19 @@ -apiVersion: v2 +apiVersion: v1 name: appmesh-prometheus -description: AWS App Mesh Prometheus Helm chart for Kubernetes -type: application -version: 0.2.0 -appVersion: 2.12.0 +description: App Mesh Prometheus Helm chart for Kubernetes +version: 0.3.0 +appVersion: 2.13.1 +home: https://github.com/aws/eks-charts +icon: https://raw.githubusercontent.com/aws/eks-charts/master/docs/logo/aws.png +sources: + - https://github.com/aws/eks-charts +maintainers: + - name: Nicholas Turner + url: https://github.com/nckturner + email: nckturner@users.noreply.github.com + - name: Stefan Prodan + url: https://github.com/stefanprodan + email: stefanprodan@users.noreply.github.com +keywords: + - eks + - appmesh diff --git a/stable/appmesh-prometheus/README.md b/stable/appmesh-prometheus/README.md new file mode 100644 index 000000000..54dd4b760 --- /dev/null +++ b/stable/appmesh-prometheus/README.md @@ -0,0 +1,59 @@ +# App Mesh Prometheus + +App Mesh Prometheus Helm chart for Kubernetes + +## Prerequisites + +* Kubernetes >= 1.13 + +## Installing the Chart + +Add the EKS repository to Helm: + +```sh +helm repo add eks https://aws.github.io/eks-charts +``` + +Install App Mesh Prometheus: + +```sh +helm upgrade -i appmesh-prometheus eks/appmesh-prometheus \ +--namespace appmesh-system +``` + +For Prometheus persistent storage you can create a [PersistentVolumeClaim](https://kubernetes.io/docs/concepts/storage/persistent-volumes/#persistentvolumeclaims) +and use `--set persistentVolumeClaim.claimName=`. + +The [configuration](#configuration) section lists the parameters that can be configured during installation. + +## Uninstalling the Chart + +To uninstall/delete the `appmesh-prometheus` deployment: + +```console +helm delete --purge appmesh-prometheus +``` + +The command removes all the Kubernetes components associated with the chart and deletes the release. + +## Configuration + +The following tables lists the configurable parameters of the chart and their default values. + +Parameter | Description | Default +--- | --- | --- +`image.repository` | image repository | `prom/prometheus` +`image.tag` | image tag | `` +`image.pullPolicy` | image pull policy | `IfNotPresent` +`resources.requests/cpu` | pod CPU request | `100m` +`resources.requests/memory` | pod memory request | `256Mi` +`resources.limits/cpu` | pod CPU limit | `2000m` +`resources.limits/memory` | pod memory limit | `2Gi` +`affinity` | node/pod affinities | None +`nodeSelector` | node labels for pod assignment | `{}` +`tolerations` | list of node taints to tolerate | `[]` +`rbac.create` | if `true`, create and use RBAC resources | `true` +`rbac.pspEnabled` | If `true`, create and use a restricted pod security policy | `false` +`serviceAccount.create` | If `true`, create a new service account | `true` +`serviceAccount.name` | Service account to be used | None +`persistentVolumeClaim.claimName` | Specify an existing volume claim to be used for Prometheus data | None diff --git a/stable/appmesh-prometheus/values.yaml b/stable/appmesh-prometheus/values.yaml index 137c5c60d..ae73a3070 100644 --- a/stable/appmesh-prometheus/values.yaml +++ b/stable/appmesh-prometheus/values.yaml @@ -9,7 +9,7 @@ replicaCount: 1 image: repository: prom/prometheus - tag: v2.12.0 + tag: v2.13.1 pullPolicy: IfNotPresent nameOverride: ""