Conversation
tofu plan -chdir=terraform -var-file=vars/production.tfvarsNo changes. Your infrastructure matches the configuration.
|
|
👋🏼 checking in ... I believe this PR will unblock a couple of other tasks (e.g. hotosm/openaerialmap#191) so curious if we can push to land this soon-ish? |
|
Will post in #oam-dev re: closing this out and tearing down the DS instance 👍 |
|
@spwoodcock @dakotabenjamin Relinking some notes on cluster access in case either of you would like to poke around. I believe there was an auth strategy in mind here, so no action needed, just wanted to put it back on your radar in case its helpful for review or TLS setup (outlined in eoapi-values.yaml). I also hadn't realized that I could mark ready for review again, so thank you for reenabling ! |
|
@aliziel thanks for this! Are there any docs for access you could provide? By the sounds of it, one requirement is:
|
If you mean AWS docs, here's their section on access entries and their page on kubectl setup. I can also expand the docs on this PR, but your summary is correct. Adding access entries maps AWS IAM to Kubernetes permissions, so you can just pull the kubeconfig and start. I did add notes about AWS auth in the TF section, I'll add a similar mention in the Kubernetes one as well. |
tofu init -chdir=terraform -var-file=vars/production.tfvarsView output.
|
tofu plan -chdir=terraform -var-file=vars/production.tfvarsError: Missing item separator
|
|
Thanks - the The process is: # Run AWS CLI
docker run --rm -it --entrypoint=sh -v $PWD:$PWD --workdir $PWD public.ecr.aws/aws-cli/aws-cli:2.19.1
# Configure SSO
aws configure sso
Session name: k8s
Start URL: https://hotosm.awsapps.com/start/#
Start region: eu-west-1
# Login via SSO
aws sso login --profile Admin
# View available clusters
aws eks list-clusters --profile Admin
# Generate a kubeconfig file:
aws eks update-kubeconfig --profile Admin --name hotosm-production-cluster --region us-east-1
# (I don't think the cluster name needs to remain secret)
# I didn't get this far - assuming this step
# Copy generated kubeconfig file to ~/.kube/config
cp kubeconfig ~/.kube/config
# Use kubectl as normal
kubectl get pods@dakotabenjamin when I list clusters as |
tofu validate -chdir=terraform -var-file=vars/production.tfvarsView output.
|
@spwoodcock So you actually shouldn't need this command, just the one before and its ready as a new context: aws eks update-kubeconfig --profile Admin --name hotosm-production-cluster --region us-east-1
# Verify
kubectl config get-contextsThe command docs outline the logic in case you have a more custom setup.
I just tried to do a workaround apply but got stuck on permissions. An admin role might've been added manually for review, so the permission gap wouldn't have flagged since it wasn't through a locked down CI role ? |
* fix: override upstream command for stac-api * fix: disable vector service
a64a8cf to
68970a4
Compare
|
I can connect to the cluster & the services are there - is there anything pending, or should we merge? |
|
By the way, I'm probably adding ArgoCD pretty soon, so will need to swap this for a pull based approach 👍 |
|
I'll go ahead and merge this then - it looks good to me 👍 We can always iterate on the setup =) Thanks for your work on this @aliziel! |
What type of PR is this? (check all applicable)
Related Issue
hotosm/openaerialmap#193
Describe this PR
Screenshots
Grafana:


Prometheus:
Review Guide
Spin up a local cluster (e.g. kind, minikube, Docker Desktop)
Install helm
Install helmfile (or run in container)
Add global resources
helmfile.yaml
Pull down this branch
Initialize helmfile, recommend installing the diff plugin to more easily view changes
$ cd kubernetes/helm $ helmfile initSet environment and apply helmfile → expect successful pgo + eoapi install
Apply again without changes → expect no updates
Modify eoapi input and reapply → expect successful eoapi update and pgo skipped
Explore cluster resources + deployed app → expect available eoapi services and interface
$ kubectl get pod,svc,deploy -A $ kubectl -n ingress-nginx get svc/ingress-ingress-nginx-controller \ -o=jsonpath='{.status.loadBalancer.ingress[0].hostname}' # <hostname> # ^^^^^^^^^ Plug output into browserSet eoapi value
ingress.tls.enabled: trueand reapply → expect eoapi-support chart to be installedNOTE: this chart should be installed when TLS is setup. We're using a shortcut for local testing, so we won't be able to interact with it.