Comments (6)
Uninstalling the gaffer Helm chart before destroying the cluster correctly deletes the application load-balancers and the associated target groups. Running cdk destroy
after successfully uninstalls the alb Helm chart and destroys the remaining cluster components.
from kai.
Just trying to understand what is missing here - it sounds like the CDK construct that is used to deploy a Helm chart will correctly uninstall the chart when you run cdk destroy
or delete the CloudFormation stack. So is the problem that the ALB chart is being uninstalled before the Gaffer chart is uninstalled? In which case a dependency link just needs adding.
from kai.
Thanks for the comment - Yes that's right, I think adding the dependency would fix it but maybe it's not straight forward to do that dynamically at runtime? If not then that would result in a change to the gaffer chart that coupled it to the AWS ALB ingress controller - at the moment the Kind deployment of this chart uses an Nginx implementation. Maybe there's a better way, I'm a Helm novice!
from kai.
So is the problem that the ALB chart is being uninstalled before the Gaffer chart is uninstalled?
Yes, though as @m29827 says the graphs are added dynamically by users via the REST API. At the moment all the graphs are deployed to the default namespace so it could be a case of uninstalling all helm releases in the default namespace before uninstalling the ingress controller. It might be possible to do this using a custom resource.
Though if not, then we should add a comment in the docs reminding administrators to uninstall all graphs before destroying the stack for this reason.
from kai.
Ahh I see - I incorrectly assumed that the project deployed 1 cluster per graph (not actually properly looked at the code :S). In which case everything would be deployed via a single CloudFormation stack, so you just need to add a DependsOn to the Gaffer Helm Chart that references the ALB Helm Chart.
As you are deploying multiple graphs, outside of CloudFormation, you will likely need to add a Custom Resource. That can be backed by a lambda function, which detects when it is being told to delete, and calls an API endpoint to destroy/uninstall all the deployed graphs.
In addition to ALBs, you will probably also find that EBS volumes are currently being left behind too.
from kai.
Merged into develop
from kai.
Related Issues (20)
- Add Contributing guidelines
- Deployment fails when extra security groups are not set HOT 1
- Add clarification that Kai is not yet ready to be used in production
- Worker always logs "Successfully deployed ..." even when it fails
- Generated passwords break Accumulo configuration file parsing.
- Remove hard coded resource names
- Clean up warnings in user pool and tests
- Decouple graph IDs from release names HOT 1
- Integrate user pool with REST API HOT 2
- Application load-balancers not created
- Remove EBS volumes when cluster deleted HOT 1
- Externalise storage of graph credentials HOT 10
- Add automated E2E testing HOT 1
- Improve reliability of ALB deployment
- Add endpoints to Graph objects after deployment HOT 1
- Introduce more separation to graphs
- Allow users to run bulk ingest to load large volumes of data into a graph HOT 1
- Add a programatic client
- 503 Temporarily unavailable message on random ALB endpoints
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kai.