aws-controllers-k8s / community

AWS Controllers for Kubernetes (ACK) is a project enabling you to manage AWS services from Kubernetes
https://aws-controllers-k8s.github.io/community/
Apache License 2.0
2.39k stars 253 forks source link

Examples for every Service Controllers #1293

Closed eminalemdar closed 2 years ago

eminalemdar commented 2 years ago

What is the URL of the document? https://aws-controllers-k8s.github.io/community/docs/community/services/

Which section(s) is the issue in?

Service details

What needs fixing? Documentation missing examples for every Service Controller in the list. Examples with default options (with required and optional parts defined) would be perfect. Being able to use those examples for every controller as reference points would make it extremely easy for everyone to use ACK.

Additional context I would love to help with this issue myself too with contribution and reviews for those documentations, if that's possible.

vijtrip2 commented 2 years ago

Agree. More examples will be very helpful. Ideally, ACK team wants to place these example manifests inside https://github.com/aws-controllers-k8s/examples

RedbackThomson commented 2 years ago

Examples with default options (with required and optional parts defined) would be perfect

Our API Reference outlines which fields are optional and required in the spec. But I agree that we should provide some basic examples, so that people can take them and adapt them to their needs - rather than starting from scratch.

As @vijtrip2 said, we want to use the example manifests repository. We haven't nailed down what format that repository will be - whether it's a series of raw YAML files, Kustomization directories, or Helm charts. The first step is to just start putting things in there, though, in whatever form they exist. We can worry about how exactly they're represented once we have things to organise.

eminalemdar commented 2 years ago

Our API Reference outlines which fields are optional and required in the spec.

Thanks for sharing the API Reference.

As @vijtrip2 said, we want to use the example manifests repository. We haven't nailed down what format that repository will be - whether it's a series of raw YAML files, Kustomization directories, or Helm charts. The first step is to just start putting things in there, though, in whatever form they exist. We can worry about how exactly they're represented once we have things to organise.

I think raw YAML files and Helm would be more ideal. Also, I believe having a guideline in the folders for each controller makes things easier for people.

jaypipes commented 2 years ago

@eminalemdar Agreed, more user-friendly examples in a single repository also exposed in our public documentation site would be ideal. You can find examples for the different controllers in the /test/e2e/resources directory of the individual ACK controller source repositories, just FYI...

eminalemdar commented 2 years ago

You can find examples for the different controllers in the /test/e2e/resources directory of the individual ACK controller source repositories, just FYI...

Thank you @jaypipes I saw these examples.

a-hilaly commented 2 years ago

It would be nice if we could also publish ACK examples that provide a demonstration of common service implementation and infrastructure patterns, similar to what cdk-examples have

eminalemdar commented 2 years ago

I've created a public repository for gathering some examples together in one place with some documentation and also added some scripts for both installation and cleanup. You can check it out here.

The repo does not have all the Service Controllers yet but I've started adding more examples there.

RedbackThomson commented 2 years ago

Wow @eminalemdar . What a great start with the examples! I think this is a great start for people who want to try out ACK and wouldn't know where to start. I also really like your (well written) bash install scripts.

I understand where you are coming from with the Terraform example, too. The AWS integrations team has just released the AWS EKS Blueprints for Terraform examples, which we might want to point to - to save ourself the headache of maintaining them ourselves.

eminalemdar commented 2 years ago

I understand where you are coming from with the Terraform example, too. The AWS integrations team has just released the AWS EKS Blueprints for Terraform examples, which we might want to point to - to save ourself the headache of maintaining them ourselves.

That's a great idea @RedbackThomson! Maybe I will update the Terraform codes in the repo with the EKS Blueprints.

RedbackThomson commented 2 years ago

Just saw your cool medium article, @eminalemdar . I still want to move forward with pushing some of this stuff into the examples repository. I have a lot more examples that I can add but I like your rough structure

eminalemdar commented 2 years ago

Just saw your cool medium article, @eminalemdar . I still want to move forward with pushing some of this stuff into the examples repository. I have a lot more examples that I can add but I like your rough structure

Thanks a lot @RedbackThomson ! Sharing is the best thing we can do for the greater community. I believe we can work on this together if you need any help from me.

RedbackThomson commented 2 years ago

@eminalemdar Please check out https://github.com/aws-controllers-k8s/examples/pull/1 . I didn't include the TF scripts, because they haven't been migrated to use AWS EKS blueprints. We should probably split scripts up into terraform, cdk, etc. too?

eminalemdar commented 2 years ago

Brilliant! Thanks @RedbackThomson ! I will migrate the terraform scripts to AWS EKS blueprints as soon as I can. I will let you know when I complete that.

We should probably split scripts up into terraform, cdk, etc. too?

Having multiple options for EKS cluster deployment would be perfect for everybody if it is maintainable of course. But I think starting with Terraform is more convenient.

eminalemdar commented 2 years ago

Hey @RedbackThomson ! I've migrated the Terraform scripts to Amazon EKS Blueprints for Terraform. you can check it out from here

eminalemdar commented 2 years ago

Hello @RedbackThomson ! I've added some more examples to the original repository. You can check out the PR and the examples from here

RedbackThomson commented 2 years ago

@eminalemdar Would you be open to rebasing your repository from our examples repository? That way, we can easily cut PRs if you want to add more examples. Otherwise someone will have to copy between the different repository layouts each time, which is going to get annoying fairly quickly.

eminalemdar commented 2 years ago

@RedbackThomson I can add this repository as a remote to my repository and push changes/new examples or I can create PRs to this repository directly too with forking this repository.

jaypipes commented 2 years ago

@eminalemdar I think we're good to close this issue out, yes? The examples repo contains examples for all the ACK controllers I believe?

eminalemdar commented 2 years ago

@eminalemdar I think we're good to close this issue out, yes? The examples repo contains examples for all the ACK controllers I believe?

Hello @jaypipes! I think we can close this issue. I can create new ones if needed in the examples repo. They are not quite complete but I will try to add more by creating PRs and relevant issues from there. Thank you!

jaypipes commented 2 years ago

Sounds good @eminalemdar thank you! :)