Comments (8)
@rbradk So for now, without any further CLI modifications, they can follow the steps I listed above (edited to show <release_name>
).
Would you agree @cwurtz?
from astronomer.
If @cwurtz gives a thumbs up, then I think we just point them to their own CI/CD tools docs. There really shouldn't be anything Astro specific here, just standard docker stuff.
from astronomer.
@rbradk the details will differ between CI/CD products, but at a high level, the process is basically the same.
- Install the astronomer platform, using EE docs. One component of the installation is a private docker registry. The registry is exposed at
registry.baseDomain
, wherebaseDomain
is the domain the user launched the platform at. When new images are pushed to this registry, they get deployed to the cluster (this is how the CLI works under the hood). - Set up a CI/CD pipeline using whatever tool you'd like. Most tools will have some sort of documentation on how to trigger the pipeline from an event from github, like a new tag/release, or push to a branch. In this pipeline, after any tests have been executed, you just need to run a few
docker
commands. A couple examples:
- https://circleci.com/docs/2.0/building-docker-images/
- https://documentation.codeship.com/pro/builds-and-configuration/image-registries/#custom--self-hosted-registry
Images should be tagged with this format registry.baseDomain/<release_name>/airflow:<version>
, and the user/password will be generated when the platform is initially installed.
@andscoop @tedmiston @cwurtz feel free to add anything to this.
from astronomer.
Probably be best to have them download the CLI in their CI build as the registry is currently password protected, and will eventually have checks if the user has permission to deploy. They can do:
astro auth login -d {their domain}
astro airflow deploy {release_name}
Where {their domain}
is their base domain, and {release_name}
is their kubernetes release name. The CLI will handle the rest.
edit:
Actually thinking about it, we'll need to modify the CLI so the username/pass can be passed to the CLI via a flag, as now it prompts for that info
from astronomer.
We have a customer in Slack who has started down the path of running it on CircleCI already. I spoke with him about a few weeks ago. (Omitting the name here since this repo is public.)
Edit: I just sent him a follow up message to see how it went and if there any pain points.
from astronomer.
I just started a branch for CI deploy docs with some basic information.
https://github.com/astronomerio/astronomer-ee/compare/ci-deploy
Here's what I wrote so far:
Deploy via CI/CD
You can deploy DAGs with continuous integration / continuous deployment via the Astronomer CLI.
While this guide focuses on CircleCI, a similar setup can be accomplished using Travis CI, Jenkins, Codeship, TeamCity, GitLab CI/CD, or any other CI/CD system.
For background information and best practices on CI/CD, we recommend reading the article An Introduction to CI/CD Best Practices from DigitalOcean.
TODO: copy discussion from #75
...
If we all agree, I'm thinking of pasting in what @cwurtz and @schnie wrote above as well.
To @cwurtz point, we could consider wiring up the current CLI with something like expect or pass creds in with a pipe/redirect like this pulled from environment variables today with potentially no change to the CLI.
from astronomer.
@schnie what needs to be true to close this issue out?
from astronomer.
Greg's recommendation is the way to go right now
from astronomer.
Related Issues (20)
- [This was actually changed to 5Gi](https://github.com/astronomer/astronomer/commit/061c85e040d50a849e3ed307e19eed15d53699eb), which means these are out of sync and the alert will not fire at 90% using these defaults. We should update charts/prometheus/templates/prometheus-alerts-configmap.yaml with a comment pointing to this default, and also figure out how we want to reconcile this difference. IMHO we can just bump this to 5Gi.
- Help needed - additionalVolume not parsable by helm with version 0.25.8 HOT 3
- Kibana content-security-policy page errors HOT 4
- Fluentd flush_at_shutdown?
- [HELM] Hardcoded Ingress hostnames for main Astronomer components HOT 2
- [HELM] Not possible to set custom Ingress annotations without enabling authSidecar HOT 3
- [HELM] Not possible to use Deployment for FluentD HOT 4
- Add ability to provide individual subdomain tls cert HOT 1
- K8s v1.22 support HOT 2
- Add k8s 1.22 support for astronomer airflow-chart HOT 1
- cannot use 'airflow db shell' command in scheduler container in astro cli HOT 5
- Provide correct email templates for developers if runtime upgrade fails. HOT 1
- Expose prometheus scrape intervals HOT 1
- email recipients within the UI not receiving deployment unhealthy email alerts HOT 1
- postgres grant statement fails with user@host:pw@host syntax HOT 16
- False alert for alertname: TargetDown HOT 4
- Feature Request: Filterable Deployments on Lineage Issues Page HOT 2
- performanceOptimizationModeEnabled - Needs some elaboration in document HOT 2
- helm uninstall doesn't remove jobs, secrets and pvcs HOT 1
- Deprecated Metrics Usage (kube-state-metrics)
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 astronomer.