Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Apache NiFi on EKS #99

Merged
merged 29 commits into from
Mar 7, 2023
Merged

Apache NiFi on EKS #99

merged 29 commits into from
Mar 7, 2023

Conversation

codesometech
Copy link
Contributor

What does this PR do?

🛑 Please open an issue first to discuss any significant work and flesh out details/direction - we would hate for your time to be wasted.
Consult the CONTRIBUTING guide for submitting pull-requests.

This PR enables deployment on Apache NiFi on EKS using EKS Blueprints.

#80

Motivation

AWS Data Lab team observed customers looking for guidance on running Apache NiFi on EKS. Currently customers are running Apache NiFi on EC2. Running Apache NiFi on EKS simplifies operations (deployments, observability, etc.) for customers who are already running other workloads on Amazon EKS

More

  • Yes, I have tested the PR using my local account setup (Provide any test evidence report under Additional Notes)
  • Yes, I have added a new example under examples to support my PR
  • Yes, I have created another PR to add a new Add-on for Terraform EKS Blueprints repo (if applicable)
  • Yes, I have updated the website/docs or website/blog section for this feature
  • [ X] Yes, I ran pre-commit run -a with this PR. Link for installing pre-commit locally

For Moderators

  • E2E Test successfully complete before merge?

Additional Notes

A working example and documentation for the website is currently under development.

@codesometech codesometech requested a review from a team as a code owner February 3, 2023 17:02
@codesometech codesometech temporarily deployed to DoEKS Test February 3, 2023 17:02 — with GitHub Actions Inactive

# Apache NiFi on EKS

### Coming soon..
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could you pls add instruction about how to deploy this example here?
I tried terraform init and apply but see ACM cert is required. Don't know how to proceed.
image

@codesometech codesometech temporarily deployed to DoEKS Test February 15, 2023 15:21 — with GitHub Actions Inactive
@codesometech codesometech temporarily deployed to DoEKS Test February 15, 2023 16:08 — with GitHub Actions Inactive
@codesometech
Copy link
Contributor Author

@season1946 NiFi.md is updated with instructions

@victorgu-github
Copy link
Contributor

@codesometech hosted zone and acm cert are not optional.

Since the doc says it is optional, I directly copy/paste the code below but got error

export TF_VAR_eks_cluster_domain="example.com"
export TF_VAR_acm_certificate_domain="*.example.com"
export TF_VAR_nifi_sub_domain="nifi"
export TF_VAR_nifi_username="admin"

image

@codesometech
Copy link
Contributor Author

@season1946 Documentation is fixed. To proceed you will need a hosted zone in Route53 and an ACM cert for that domain.

@victorgu-github
Copy link
Contributor

@codesometech thanks for the explanation. looks good to me.
@vara-bonthu

enable_amazon_eks_vpc_cni = true
enable_amazon_eks_coredns = true
enable_amazon_eks_kube_proxy = true
enable_amazon_eks_aws_ebs_csi_driver = true
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this actually used? Looks like the default in-tree gp2 StorageClass is used in helm chart.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

eks_aws_ebs_csi_driver is now mandatory form eks v1.23 even with default gp2.

Comment on lines 45 to 50
name = "metrics-server"
repository = "https://kubernetes-sigs.github.io/metrics-server/" # (Optional) Repository URL where to locate the requested chart.
chart = "metrics-server"
version = "3.8.2"
namespace = "kube-system"
timeout = "300"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should try to keep the code less verbose and remove the default values. Please do this for all add-ons below.

special = true
override_special = "!#$%&*()-_=+[]{}<>:?"
}
#tfsec:ignore:aws-ssm-secret-use-customer-key
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: missing newline

length = 16
special = false
}
#tfsec:ignore:aws-ssm-secret-use-customer-key
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: missing newline

length = 16
special = false
}
#tfsec:ignore:aws-ssm-secret-use-customer-key
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: missing newline

}

private_subnet_tags = {
"kubernetes.io/cluster/${local.name}" = "shared"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this tag is no longer needed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tag removed

@@ -0,0 +1,205 @@
---
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove references to "ray" in the doc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

sidebar_label: Apache NiFi on EKS
---

# Apache NiFi on EKS
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add some details on what Nifi is and when should customers consider Nifi. References to some pertinent documentation would also be useful here.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added intro section


Coming soon..

### Monitoring
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a grafana dashboard?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grafana dashboard link added


### Examples

Coming soon..
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add a simple example now? Without example the blueprint does not make much sense.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example added

@codesometech codesometech temporarily deployed to DoEKS Test February 24, 2023 17:33 — with GitHub Actions Inactive
@codesometech codesometech temporarily deployed to DoEKS Test March 3, 2023 19:57 — with GitHub Actions Inactive
@codesometech codesometech temporarily deployed to DoEKS Test March 3, 2023 20:06 — with GitHub Actions Inactive
@codesometech codesometech temporarily deployed to DoEKS Test March 3, 2023 20:41 — with GitHub Actions Inactive
@codesometech
Copy link
Contributor Author

@askulkarni2 I made the suggested changes and also moved to the new pattern for eks cluster.

Copy link
Collaborator

@vara-bonthu vara-bonthu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@codesometech Excellent work on this PR Praveen 🥇 We are good to merge this PR if you double check the comments from Apoorva and ensure the checks are passing.

@codesometech codesometech temporarily deployed to DoEKS Test March 7, 2023 06:29 — with GitHub Actions Inactive
@codesometech codesometech temporarily deployed to DoEKS Test March 7, 2023 06:35 — with GitHub Actions Inactive
@codesometech
Copy link
Contributor Author

@codesometech Excellent work on this PR Praveen 🥇 We are good to merge this PR if you double check the comments from Apoorva and ensure the checks are passing.

@vara-bonthu I added a couple of missing new lines. TFlint is failing in emr-eks-ack-crossplane and ray. Rest of the checks are passing.

@vara-bonthu vara-bonthu merged commit 8d3806e into awslabs:main Mar 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants