-
Notifications
You must be signed in to change notification settings - Fork 1k
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
CI/CD pipeline examples: GCP, AWS and Azure infra stacks in GitLab, ArgoCD, Jenkins #631
Closed
7 of 18 tasks
Labels
Comments
This was referenced Sep 11, 2019
Closed
4 tasks
This was referenced Oct 4, 2019
This was referenced Oct 7, 2019
@negz Why is this not considered useful anymore? |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Provide working examples and associated blog posts describing how to integrate Crossplane into various CI/CD pipelines for continuous deployment of Kubernetes apps and the cloud services they depend on.
Part of the 0.3 release
Why? What problem are we solving?
Crossplane simplifies k8s app deployments into different target environments (dev, test, prod) that often use their own networks, subnets, k8s clusters, cloud services, credentials, and security configuration.
For shared environments supporting multiple app teams, it can save a lot of time & work to configure each target environment once (networks, subnets, target k8s clusters, cloud service provisioners, cloud credentials) esp. since it can take several minutes to provision k8s clusters on demand and esp. in dev/test environments the k8s apps & cloud service instances are often ephemeral and transient in nature.
Even when an app team owns their own target environments (dev/test/prod) and k8s clusters, there are often multiple developers on a team sharing a (dev/test) cluster, and k8s app deployments (with cloud services) are frequently torn down (from-scratch vs. in-place upgrades) and the deployed k8s app instances need to be rapidly cycled as new commits land on master or changes are promoted.
Even if you're the only developer on an app and you have your own target environments (dev/test/prod) that you exclusively own and manage you probably don't want the time hit of k8s target cluster creation every time you cycle your k8s app deployment with cloud services in dev/test. So even then configuring your target environments once and rapidly cycling your k8s app instances is desirable.
So there are 2 primary problems:
(1) config of target environments (networks, subnets, target k8s clusters, ...), to support
(2) rapid deploy & reclaim k8s apps and cloud service dependencies in dev/test and maybe prod.
It's often considered a best practice to have these configurations stored 'as code' in a VCS, and then have changes committed trigger a traditional CI/CD pipeline like Jenkins or GitLab or have a GitOps style flow that polls Git and synchronizes desired state (e.g. WeaveWorks Flux, Google Anthos, etc).
So as a Crossplane user:
What does it look like when we're done?
For (Jenkins pipeline, GitLab pipeline, GitOps flow)x(GCP, AWS, Azure stacks):
How could this be demonstrated?
For (Jenkins pipeline, GitLab pipeline, GitOps flow)x(GCP stack, AWS stack, Azure stack):
Releases:
kubectl apply -f
technique, sample infra & app reposRelated:
One pager for Cross Resource Referencing Inter-resource attribute references #707, Cross Resource Referencing design doc #874
Implement Cross Resource Referencing
kubectl apply -f
technique, w/ working sample infra and app repos - Update crossplane.io services & stacks guides with new kubectl apply -f techniques and repos #905Write a user guide to use a gitops CI/CD system for Crossplane infra and app repositories
Good to have:
The text was updated successfully, but these errors were encountered: