parent
c913a2d017
commit
acb7bccc36
|
@ -1,6 +1,6 @@
|
|||
## How to Contribute
|
||||
|
||||
The Conductor project is under [Apache 2.0 license](LICENSE). We accept contributions via
|
||||
The Crossplane project is under [Apache 2.0 license](LICENSE). We accept contributions via
|
||||
GitHub pull requests. This document outlines some of the conventions related to
|
||||
development workflow, commit message formatting, contact points and other
|
||||
resources to make it easier to get your contribution accepted.
|
||||
|
@ -57,11 +57,11 @@ This is a rough outline of what a contributor's workflow looks like:
|
|||
|
||||
## Building
|
||||
|
||||
Details about building conductor can be found in [INSTALL.md](INSTALL.md).
|
||||
Details about building crossplane can be found in [INSTALL.md](INSTALL.md).
|
||||
|
||||
## Coding Style
|
||||
|
||||
Conductor projects are written in golang and follows the style guidelines dictated by
|
||||
Crossplane projects are written in golang and follows the style guidelines dictated by
|
||||
the go fmt as well as go vet tools.
|
||||
|
||||
## Comments
|
||||
|
@ -72,13 +72,13 @@ be created if they do not yet exist and updated if they do.
|
|||
|
||||
The goal of comments is to make the code more readable and grokkable by future developers. Once you
|
||||
have made your code as understandable as possible, add comments to make sure future developers can
|
||||
understand (A) what this piece of code's responsibility is within Conductor's architecture and (B) why it
|
||||
understand (A) what this piece of code's responsibility is within Crossplane's architecture and (B) why it
|
||||
was written as it was.
|
||||
|
||||
The below blog entry explains more the why's and how's of this guideline.
|
||||
https://blog.codinghorror.com/code-tells-you-how-comments-tell-you-why/
|
||||
|
||||
For Go, Conductor follows standard godoc guidelines.
|
||||
For Go, Crossplane follows standard godoc guidelines.
|
||||
A concise godoc guideline can be found here: https://blog.golang.org/godoc-documenting-go-code
|
||||
|
||||
## Commit Messages
|
||||
|
@ -112,9 +112,9 @@ git tools.
|
|||
## Adding New Resources
|
||||
|
||||
### Project Organization
|
||||
The Conductor project is based on and intially created by using [Kubebuilder is a framework for building Kubernetes APIs](https://github.com/kubernetes-sigs/kubebuilder).
|
||||
The Crossplane project is based on and intially created by using [Kubebuilder is a framework for building Kubernetes APIs](https://github.com/kubernetes-sigs/kubebuilder).
|
||||
|
||||
The Conductor project organizes resources (api types and controllers) by grouping them by Cloud Provider with further sub-group by resource type
|
||||
The Crossplane project organizes resources (api types and controllers) by grouping them by Cloud Provider with further sub-group by resource type
|
||||
|
||||
The Kubebuilder framework does not provide good support for projects with multiple groups and group tiers which contain resources with overlapping names.
|
||||
For example:
|
||||
|
@ -168,7 +168,7 @@ There are several different ways you can approach the creation of the new resour
|
|||
Good ol' copy & paste of existing resource for both apis and controller (if new controller is needed) and update to tailor your needs.
|
||||
|
||||
#### Kubebuilder With New Project
|
||||
Create and Initialize a new (temporary) kubebuilder project and create new resources: apis and controller(s), then copy them into Conductor project following the established project organization.
|
||||
Create and Initialize a new (temporary) kubebuilder project and create new resources: apis and controller(s), then copy them into Crossplane project following the established project organization.
|
||||
|
||||
To verify that new artifacts run:
|
||||
```bash
|
||||
|
|
14
INSTALL.md
14
INSTALL.md
|
@ -1,6 +1,6 @@
|
|||
# Building and Installing Conductor
|
||||
# Building and Installing Crossplane
|
||||
|
||||
Conductor is composed of golang project and can be built directly with standard `golang` tools. We currently support
|
||||
Crossplane is composed of golang project and can be built directly with standard `golang` tools. We currently support
|
||||
two different platforms for building:
|
||||
|
||||
* Linux: most modern distros should work although most testing has been done on Ubuntu
|
||||
|
@ -28,7 +28,7 @@ First ensure that you have the build submodule synced and updated:
|
|||
git submodule sync && git submodule update --init --recursive
|
||||
```
|
||||
|
||||
You can then build the Conductor binaries and all container images for the host platform by simply running the
|
||||
You can then build the Crossplane binaries and all container images for the host platform by simply running the
|
||||
command below. Building in parallel with the `-j` option is recommended.
|
||||
|
||||
```
|
||||
|
@ -39,7 +39,7 @@ Run `make help` for more options.
|
|||
|
||||
## Building inside the cross container
|
||||
|
||||
Official Conductor builds are done inside a build container. This ensures that we get a consistent build, test and release environment. To run the build inside the cross container run:
|
||||
Official Crossplane builds are done inside a build container. This ensures that we get a consistent build, test and release environment. To run the build inside the cross container run:
|
||||
|
||||
```
|
||||
> build/run make -j4
|
||||
|
@ -130,13 +130,13 @@ systemctl enable update-binfmt.service
|
|||
# Install
|
||||
|
||||
## Local
|
||||
Please refer to [Local Build & Install](/cluster/local/README.md) documentation on how to deploy locally built Conductor image onto Kubernetes cluster running on Minikube
|
||||
Please refer to [Local Build & Install](/cluster/local/README.md) documentation on how to deploy locally built Crossplane image onto Kubernetes cluster running on Minikube
|
||||
|
||||
# Improving Build Speed
|
||||
|
||||
## Image Caching and Pruning
|
||||
|
||||
Doing a complete build of Conductor and the dependent packages can take a long time (more than an hour on a typical macbook). To speed things up we rely heavily on image caching in docker. Docker support content-addressable images by default and we use that effectively when building images. Images are factored to increase reusability across builds. We also tag and timestamp images that should remain in the cache to help future builds.
|
||||
Doing a complete build of Crossplane and the dependent packages can take a long time (more than an hour on a typical macbook). To speed things up we rely heavily on image caching in docker. Docker support content-addressable images by default and we use that effectively when building images. Images are factored to increase reusability across builds. We also tag and timestamp images that should remain in the cache to help future builds.
|
||||
|
||||
### Pruning the cache
|
||||
|
||||
|
@ -149,5 +149,5 @@ To prune the number of cached images run `make prune`. There are two options tha
|
|||
Every PR and every merge to master triggers the CI process in [TBD](http://TBD).
|
||||
The Jenkins CI will build, run unit tests, run integration tests and Publish artifacts- On every commit to PR and master.
|
||||
If any of the CI stages fail, then the process is aborted and no artifacts are published.
|
||||
On every successful build Artifacts are pushed to a [s3 bucket](https://release.conductor.io/). On every successful master build,
|
||||
On every successful build Artifacts are pushed to a [s3 bucket](https://release.crossplane.io/). On every successful master build,
|
||||
images are uploaded to docker hub in addition.
|
||||
|
|
2
LICENSE
2
LICENSE
|
@ -186,7 +186,7 @@
|
|||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright 2016 The Conductor Authors. All rights reserved.
|
||||
Copyright 2016 The Crossplane Authors. All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
16
Makefile
16
Makefile
|
@ -1,8 +1,8 @@
|
|||
# ====================================================================================
|
||||
# Setup Project
|
||||
|
||||
PROJECT_NAME := conductor
|
||||
PROJECT_REPO := github.com/upbound/$(PROJECT_NAME)
|
||||
PROJECT_NAME := crossplane
|
||||
PROJECT_REPO := github.com/crossplaneio/$(PROJECT_NAME)
|
||||
|
||||
PLATFORMS ?= linux_amd64
|
||||
include build/makelib/common.mk
|
||||
|
@ -10,7 +10,7 @@ include build/makelib/common.mk
|
|||
# ====================================================================================
|
||||
# Setup Output
|
||||
|
||||
S3_BUCKET ?= upbound.releases/conductor
|
||||
S3_BUCKET ?= upbound.releases/crossplane
|
||||
include build/makelib/output.mk
|
||||
|
||||
# ====================================================================================
|
||||
|
@ -21,7 +21,7 @@ include build/makelib/output.mk
|
|||
# to half the number of CPU cores.
|
||||
GO_TEST_PARALLEL := $(shell echo $$(( $(NPROCS) / 2 )))
|
||||
|
||||
GO_STATIC_PACKAGES = $(GO_PROJECT)/cmd/conductor
|
||||
GO_STATIC_PACKAGES = $(GO_PROJECT)/cmd/crossplane
|
||||
GO_LDFLAGS += -X $(GO_PROJECT)/pkg/version.Version=$(VERSION)
|
||||
include build/makelib/golang.mk
|
||||
|
||||
|
@ -30,8 +30,8 @@ include build/makelib/golang.mk
|
|||
|
||||
HELM_BASE_URL = https://charts.upbound.io
|
||||
HELM_S3_BUCKET = upbound.charts
|
||||
HELM_CHARTS = conductor
|
||||
HELM_CHART_LINT_ARGS_conductor = --set nameOverride='',imagePullSecrets=''
|
||||
HELM_CHARTS = crossplane
|
||||
HELM_CHART_LINT_ARGS_crossplane = --set nameOverride='',imagePullSecrets=''
|
||||
include build/makelib/helm.mk
|
||||
|
||||
# ====================================================================================
|
||||
|
@ -43,7 +43,7 @@ include build/makelib/kubebuilder.mk
|
|||
# Setup Images
|
||||
|
||||
DOCKER_REGISTRY = upbound
|
||||
IMAGES = conductor
|
||||
IMAGES = crossplane
|
||||
include build/makelib/image.mk
|
||||
|
||||
# ====================================================================================
|
||||
|
@ -53,4 +53,4 @@ include build/makelib/image.mk
|
|||
|
||||
# Generate manifests e.g. CRD, RBAC etc.
|
||||
manifests:
|
||||
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd --output-dir cluster/charts/conductor/crds --nested
|
||||
go run vendor/sigs.k8s.io/controller-tools/cmd/controller-gen/main.go crd --output-dir cluster/charts/crossplane/crds --nested
|
||||
|
|
4
PROJECT
4
PROJECT
|
@ -1,3 +1,3 @@
|
|||
version: "1"
|
||||
domain: conductor.io
|
||||
repo: github.com/upbound/conductor
|
||||
domain: crossplane.io
|
||||
repo: github.com/crossplaneio/crossplane
|
||||
|
|
26
README.md
26
README.md
|
@ -1,14 +1,14 @@
|
|||
# Project Conductor (codename)
|
||||
# Project Crossplane (codename)
|
||||
|
||||
## What is Conductor?
|
||||
## What is Crossplane?
|
||||
|
||||
Conductor is an open source **external-resource-definition** for Kubernetes , providing the platform, framework, and support for a diverse set of the managed resources offered by major cloud providers (Currently focused on AWS and GCP)
|
||||
Crossplane is an open source **external-resource-definition** for Kubernetes , providing the platform, framework, and support for a diverse set of the managed resources offered by major cloud providers (Currently focused on AWS and GCP)
|
||||
|
||||
Conductor turns storage software into self-managing, self-scaling, and self-healing of managed cloud resources. Conductor extends the facilities provided by Kubernetes such container management, scheduling and orchestration to the external resources.
|
||||
Crossplane turns storage software into self-managing, self-scaling, and self-healing of managed cloud resources. Crossplane extends the facilities provided by Kubernetes such container management, scheduling and orchestration to the external resources.
|
||||
|
||||
Conductor integrates deeply into cloud native environments leveraging extension points and providing a seamless experience for scheduling, lifecycle management, resource management, security, monitoring, and user experience.
|
||||
Crossplane integrates deeply into cloud native environments leveraging extension points and providing a seamless experience for scheduling, lifecycle management, resource management, security, monitoring, and user experience.
|
||||
|
||||
For more details about the cloud providers and resources currently supported by Conductor, please refer to the [project status section](#project-status) below.
|
||||
For more details about the cloud providers and resources currently supported by Crossplane, please refer to the [project status section](#project-status) below.
|
||||
We plan to continue adding support for other cloud providers and resource based on community demand and engagement in future releases. See our [roadmap](ROADMAP.md) for more details.
|
||||
|
||||
## Contributing
|
||||
|
@ -17,11 +17,11 @@ We welcome contributions. See [Contributing](CONTRIBUTING.md) to get started.
|
|||
|
||||
## Report a Bug
|
||||
|
||||
For filing bugs, suggesting improvements, or requesting new features, please open an [issue](https://github.com/upbound/conductor/issues).
|
||||
For filing bugs, suggesting improvements, or requesting new features, please open an [issue](https://github.com/crossplaneio/crossplane/issues).
|
||||
|
||||
## Project Status
|
||||
|
||||
The status of each storage provider supported by Conductor can be found in the table below.
|
||||
The status of each storage provider supported by Crossplane can be found in the table below.
|
||||
Each API group is assigned its own individual status to reflect their varying maturity and stability.
|
||||
More details about API versioning and status in Kubernetes can be found on the Kubernetes [API versioning page](https://kubernetes.io/docs/concepts/overview/kubernetes-api/#api-versioning), but the key difference between the statuses are summarized below:
|
||||
|
||||
|
@ -32,15 +32,15 @@ More details about API versioning and status in Kubernetes can be found on the K
|
|||
|
||||
| Name | Details | API Group | Status |
|
||||
| ----- | --------- | ----------- | -------- |
|
||||
| AWS Database | Database storage services in AWS | database.aws.conductor.io/v1alpha1 | Alpha |
|
||||
| GCP Database | Database storage services in GCP | database.gcp.conductor.io/v1alpha1 | Alpha |
|
||||
| AWS Database | Database storage services in AWS | database.aws.crossplane.io/v1alpha1 | Alpha |
|
||||
| GCP Database | Database storage services in GCP | database.gcp.crossplane.io/v1alpha1 | Alpha |
|
||||
|
||||
### Official Releases
|
||||
|
||||
Official releases of Conductor can be found on the [releases page](https://github.com/upbound/conductor/releases).
|
||||
Please note that it is **strongly recommended** that you use [official releases](https://github.com/upbound/conductor/releases) of Conductor, as unreleased versions from the master branch are subject to changes and incompatibilities that will not be supported in the official releases.
|
||||
Official releases of Crossplane can be found on the [releases page](https://github.com/crossplaneio/crossplane/releases).
|
||||
Please note that it is **strongly recommended** that you use [official releases](https://github.com/crossplaneio/crossplane/releases) of Crossplane, as unreleased versions from the master branch are subject to changes and incompatibilities that will not be supported in the official releases.
|
||||
Builds from the master branch can have functionality changed and even removed at any time without compatibility support and without prior notice.
|
||||
|
||||
## Licensing
|
||||
|
||||
Conductor is under the Apache 2.0 license.
|
||||
Crossplane is under the Apache 2.0 license.
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
# Roadmap
|
||||
|
||||
This document defines a high level roadmap for Conductor development and upcoming releases.
|
||||
This document defines a high level roadmap for Crossplane development and upcoming releases.
|
||||
The features and themes included in each milestone are optimistic in the sense that many do not have clear owners yet.
|
||||
Community and contributor involvement is vital for successfully implementing all desired items for each release.
|
||||
We hope that the items listed below will inspire further engagement from the community to keep Conductor progressing and shipping exciting and valuable features.
|
||||
We hope that the items listed below will inspire further engagement from the community to keep Crossplane progressing and shipping exciting and valuable features.
|
||||
|
||||
Any dates listed below and the specific issues that will ship in a given milestone are subject to change but should give a general idea of what we are planning.
|
||||
We use the [milestone](https://github.com/upbound/conductor/milestones) feature in Github so look there for the most up-to-date and issue plan.
|
||||
We use the [milestone](https://github.com/crossplaneio/crossplane/milestones) feature in Github so look there for the most up-to-date and issue plan.
|
||||
|
||||
## v0.1
|
||||
|
||||
|
@ -26,7 +26,7 @@ We use the [milestone](https://github.com/upbound/conductor/milestones) feature
|
|||
* New isolated jenkins instance (similar to Rook's jenkins)
|
||||
* Developer unit testing with high code coverage
|
||||
* Integration testing pipeline
|
||||
* Artifact publishing (container images, conductor helm chart, etc.)
|
||||
* Artifact publishing (container images, crossplane helm chart, etc.)
|
||||
* Documentation
|
||||
* User guides, quick-starts, walkthroughs
|
||||
* Godocs developer docs for source code/packages/libraries
|
||||
|
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: eksclusters.container.aws.conductor.io
|
||||
name: eksclusters.container.aws.crossplane.io
|
||||
spec:
|
||||
group: container.aws.conductor.io
|
||||
group: container.aws.crossplane.io
|
||||
names:
|
||||
kind: EKSCluster
|
||||
plural: eksclusters
|
||||
|
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: workloads.compute.conductor.io
|
||||
name: workloads.compute.crossplane.io
|
||||
spec:
|
||||
group: compute.conductor.io
|
||||
group: compute.crossplane.io
|
||||
names:
|
||||
kind: Workload
|
||||
plural: workloads
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
apiVersion: v1
|
||||
appVersion: 0.0.1
|
||||
description: Conductor - Managed Cloud Resources Operator
|
||||
description: Crossplane - Managed Cloud Resources Operator
|
||||
icon: https://upbound.io/images/balloon.svg
|
||||
name: conductor
|
||||
name: crossplane
|
||||
version: 0.0.1
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: eksclusters.compute.aws.conductor.io
|
||||
name: eksclusters.compute.aws.crossplane.io
|
||||
spec:
|
||||
group: compute.aws.conductor.io
|
||||
group: compute.aws.crossplane.io
|
||||
names:
|
||||
kind: EKSCluster
|
||||
plural: eksclusters
|
||||
|
@ -60,10 +60,6 @@ spec:
|
|||
properties:
|
||||
endpoint:
|
||||
type: string
|
||||
message:
|
||||
type: string
|
||||
providerID:
|
||||
type: string
|
||||
resourceName:
|
||||
type: string
|
||||
state:
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: rdsinstances.database.aws.conductor.io
|
||||
name: rdsinstances.database.aws.crossplane.io
|
||||
spec:
|
||||
group: database.aws.conductor.io
|
||||
group: database.aws.crossplane.io
|
||||
names:
|
||||
kind: RDSInstance
|
||||
plural: rdsinstances
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: s3buckets.storage.aws.conductor.io
|
||||
name: s3buckets.storage.aws.crossplane.io
|
||||
spec:
|
||||
group: storage.aws.conductor.io
|
||||
group: storage.aws.crossplane.io
|
||||
names:
|
||||
kind: S3Bucket
|
||||
plural: s3buckets
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: providers.aws.conductor.io
|
||||
name: providers.aws.crossplane.io
|
||||
spec:
|
||||
group: aws.conductor.io
|
||||
group: aws.crossplane.io
|
||||
names:
|
||||
kind: Provider
|
||||
plural: providers
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: mysqlservers.database.azure.conductor.io
|
||||
name: mysqlservers.database.azure.crossplane.io
|
||||
spec:
|
||||
group: database.azure.conductor.io
|
||||
group: database.azure.crossplane.io
|
||||
names:
|
||||
kind: MysqlServer
|
||||
plural: mysqlservers
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: azurebuckets.storage.azure.conductor.io
|
||||
name: azurebuckets.storage.azure.crossplane.io
|
||||
spec:
|
||||
group: storage.azure.conductor.io
|
||||
group: storage.azure.crossplane.io
|
||||
names:
|
||||
kind: AzureBucket
|
||||
plural: azurebuckets
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: providers.azure.conductor.io
|
||||
name: providers.azure.crossplane.io
|
||||
spec:
|
||||
group: azure.conductor.io
|
||||
group: azure.crossplane.io
|
||||
names:
|
||||
kind: Provider
|
||||
plural: providers
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: kubernetesclusters.compute.conductor.io
|
||||
name: kubernetesclusters.compute.crossplane.io
|
||||
spec:
|
||||
group: compute.conductor.io
|
||||
group: compute.crossplane.io
|
||||
names:
|
||||
kind: KubernetesCluster
|
||||
plural: kubernetesclusters
|
|
@ -0,0 +1,76 @@
|
|||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: workloads.compute.crossplane.io
|
||||
spec:
|
||||
group: compute.crossplane.io
|
||||
names:
|
||||
kind: Workload
|
||||
plural: workloads
|
||||
scope: Namespaced
|
||||
validation:
|
||||
openAPIV3Schema:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
metadata:
|
||||
type: object
|
||||
spec:
|
||||
properties:
|
||||
classReference:
|
||||
type: object
|
||||
clusterVersion:
|
||||
type: string
|
||||
resourceName:
|
||||
type: object
|
||||
resources:
|
||||
items:
|
||||
properties:
|
||||
apiVersion:
|
||||
type: string
|
||||
fieldPath:
|
||||
type: string
|
||||
kind:
|
||||
type: string
|
||||
name:
|
||||
type: string
|
||||
namespace:
|
||||
type: string
|
||||
resourceVersion:
|
||||
type: string
|
||||
secretName:
|
||||
type: string
|
||||
uid:
|
||||
type: string
|
||||
required:
|
||||
- secretName
|
||||
type: object
|
||||
type: array
|
||||
selector:
|
||||
type: object
|
||||
targetDeployment:
|
||||
type: object
|
||||
targetNamespace:
|
||||
type: string
|
||||
targetService:
|
||||
type: object
|
||||
required:
|
||||
- resources
|
||||
type: object
|
||||
status:
|
||||
properties:
|
||||
provisioner:
|
||||
type: string
|
||||
type: object
|
||||
version: v1alpha1
|
||||
status:
|
||||
acceptedNames:
|
||||
kind: ""
|
||||
plural: ""
|
||||
conditions: []
|
||||
storedVersions: []
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: resourceclasses.core.conductor.io
|
||||
name: resourceclasses.core.crossplane.io
|
||||
spec:
|
||||
group: core.conductor.io
|
||||
group: core.crossplane.io
|
||||
names:
|
||||
kind: ResourceClass
|
||||
plural: resourceclasses
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: gkeclusters.compute.gcp.conductor.io
|
||||
name: gkeclusters.compute.gcp.crossplane.io
|
||||
spec:
|
||||
group: compute.gcp.conductor.io
|
||||
group: compute.gcp.crossplane.io
|
||||
names:
|
||||
kind: GKECluster
|
||||
plural: gkeclusters
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: eksclusters.container.gcp.conductor.io
|
||||
name: eksclusters.container.gcp.crossplane.io
|
||||
spec:
|
||||
group: container.gcp.conductor.io
|
||||
group: container.gcp.crossplane.io
|
||||
names:
|
||||
kind: EKSCluster
|
||||
plural: eksclusters
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: cloudsqlinstances.database.gcp.conductor.io
|
||||
name: cloudsqlinstances.database.gcp.crossplane.io
|
||||
spec:
|
||||
group: database.gcp.conductor.io
|
||||
group: database.gcp.crossplane.io
|
||||
names:
|
||||
kind: CloudsqlInstance
|
||||
plural: cloudsqlinstances
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: gcpbuckets.storage.gcp.conductor.io
|
||||
name: gcpbuckets.storage.gcp.crossplane.io
|
||||
spec:
|
||||
group: storage.gcp.conductor.io
|
||||
group: storage.gcp.crossplane.io
|
||||
names:
|
||||
kind: GCPBucket
|
||||
plural: gcpbuckets
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: providers.gcp.conductor.io
|
||||
name: providers.gcp.crossplane.io
|
||||
spec:
|
||||
group: gcp.conductor.io
|
||||
group: gcp.crossplane.io
|
||||
names:
|
||||
kind: Provider
|
||||
plural: providers
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: buckets.storage.conductor.io
|
||||
name: buckets.storage.crossplane.io
|
||||
spec:
|
||||
group: storage.conductor.io
|
||||
group: storage.crossplane.io
|
||||
names:
|
||||
kind: Bucket
|
||||
plural: buckets
|
|
@ -4,9 +4,9 @@ metadata:
|
|||
creationTimestamp: null
|
||||
labels:
|
||||
controller-tools.k8s.io: "1.0"
|
||||
name: mysqlinstances.storage.conductor.io
|
||||
name: mysqlinstances.storage.crossplane.io
|
||||
spec:
|
||||
group: storage.conductor.io
|
||||
group: storage.crossplane.io
|
||||
names:
|
||||
kind: MySQLInstance
|
||||
plural: mysqlinstances
|
|
@ -48,14 +48,14 @@ rules:
|
|||
- patch
|
||||
- delete
|
||||
- apiGroups:
|
||||
- storage.conductor.io
|
||||
- core.conductor.io
|
||||
- aws.conductor.io
|
||||
- database.aws.conductor.io
|
||||
- azure.conductor.io
|
||||
- database.azure.conductor.io
|
||||
- gcp.conductor.io
|
||||
- database.gcp.conductor.io
|
||||
- storage.crossplane.io
|
||||
- core.crossplane.io
|
||||
- aws.crossplane.io
|
||||
- database.aws.crossplane.io
|
||||
- azure.crossplane.io
|
||||
- database.azure.crossplane.io
|
||||
- gcp.crossplane.io
|
||||
- database.gcp.crossplane.io
|
||||
resources:
|
||||
- "*"
|
||||
verbs:
|
|
@ -3,7 +3,7 @@ replicas: 1
|
|||
deploymentStrategy: RollingUpdate
|
||||
|
||||
image:
|
||||
repository: upbound/conductor
|
||||
repository: upbound/crossplane
|
||||
tag: %%VERSION%%
|
||||
pullPolicy: Always
|
||||
|
|
@ -1,14 +1,14 @@
|
|||
apiVersion: core.conductor.io/v1alpha1
|
||||
apiVersion: core.crossplane.io/v1alpha1
|
||||
kind: ResourceClass
|
||||
metadata:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
parameters:
|
||||
class: db.t2.small
|
||||
masterUsername: masteruser
|
||||
securityGroups:
|
||||
size: 20
|
||||
provisioner: mysql.rds.aws.conductor.io
|
||||
provisioner: mysql.rds.aws.crossplane.io
|
||||
providerRef:
|
||||
name: demo-aws-provider
|
||||
reclaimPolicy: Delete
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: database.aws.conductor.io/v1alpha1
|
||||
apiVersion: database.aws.crossplane.io/v1alpha1
|
||||
kind: RDSInstance
|
||||
metadata:
|
||||
name: demo-rds
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: database.gcp.conductor.io/v1alpha1
|
||||
apiVersion: database.gcp.crossplane.io/v1alpha1
|
||||
kind: CloudsqlInstance
|
||||
metadata:
|
||||
labels:
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: compute.gcp.conductor.io/v1alpha1
|
||||
apiVersion: compute.gcp.crossplane.io/v1alpha1
|
||||
kind: GKECluster
|
||||
metadata:
|
||||
name: demo-cluster
|
||||
|
|
|
@ -4,31 +4,31 @@ data:
|
|||
kind: Secret
|
||||
metadata:
|
||||
name: aws-creds
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
type: Opaque
|
||||
---
|
||||
apiVersion: aws.conductor.io/v1alpha1
|
||||
apiVersion: aws.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: aws-provider
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
spec:
|
||||
credentialsSecretRef:
|
||||
key: credentials
|
||||
name: aws-creds
|
||||
region: us-east-1
|
||||
---
|
||||
apiVersion: core.conductor.io/v1alpha1
|
||||
apiVersion: core.crossplane.io/v1alpha1
|
||||
kind: ResourceClass
|
||||
metadata:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
parameters:
|
||||
class: db.t2.small
|
||||
masterUsername: masteruser
|
||||
securityGroups: "sg-ab1cdefg,sg-05adsfkaj1ksdjak"
|
||||
size: "20"
|
||||
provisioner: rdsinstance.database.aws.conductor.io/v1alpha1
|
||||
provisioner: rdsinstance.database.aws.crossplane.io/v1alpha1
|
||||
providerRef:
|
||||
name: aws-provider
|
||||
reclaimPolicy: Delete
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: storage.conductor.io/v1alpha1
|
||||
apiVersion: storage.crossplane.io/v1alpha1
|
||||
kind: Bucket
|
||||
metadata:
|
||||
name: demo-bucket
|
||||
|
@ -6,14 +6,14 @@ spec:
|
|||
name: wordpress-demo-e401ddfa-4729-4b72-bcef-94922203b547
|
||||
predefinedACL: private
|
||||
---
|
||||
apiVersion: storage.conductor.io/v1alpha1
|
||||
apiVersion: storage.crossplane.io/v1alpha1
|
||||
kind: MySQLInstance
|
||||
metadata:
|
||||
name: mysql-instance
|
||||
spec:
|
||||
classReference:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
engineVersion: "5.7"
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
|
|
|
@ -9,7 +9,7 @@ data:
|
|||
credentials: BASE64ENCODED_AWS_PROVIDER_CREDS
|
||||
---
|
||||
# AWS Provider with credential secret reference - used to provision aws resources
|
||||
apiVersion: aws.conductor.io/v1alpha1
|
||||
apiVersion: aws.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: demo-aws-provider
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: storage.aws.conductor.io/v1alpha1
|
||||
apiVersion: storage.aws.crossplane.io/v1alpha1
|
||||
kind: S3Bucket
|
||||
metadata:
|
||||
name: demo-bucket
|
||||
|
@ -9,7 +9,7 @@ spec:
|
|||
providerRef:
|
||||
name: demo-aws-provider
|
||||
---
|
||||
apiVersion: database.aws.conductor.io/v1alpha1
|
||||
apiVersion: database.aws.crossplane.io/v1alpha1
|
||||
kind: RDSInstance
|
||||
metadata:
|
||||
name: demo-rds
|
||||
|
|
|
@ -4,17 +4,17 @@ apiVersion: v1
|
|||
kind: Secret
|
||||
metadata:
|
||||
name: azure-provider-creds
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
type: Opaque
|
||||
data:
|
||||
credentials: BASE64ENCODED_AZURE_PROVIDER_CREDS
|
||||
---
|
||||
# Azure Provider with service principal secret reference - used to provision sql resources
|
||||
apiVersion: azure.conductor.io/v1alpha1
|
||||
apiVersion: azure.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: azure-sql-provider
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
spec:
|
||||
credentialsSecretRef:
|
||||
name: azure-provider-creds
|
||||
|
@ -22,11 +22,11 @@ spec:
|
|||
---
|
||||
# ResourceClass that defines the blueprint for how a "standard" Azure MySQL Server
|
||||
# should be dynamically provisioned
|
||||
apiVersion: core.conductor.io/v1alpha1
|
||||
apiVersion: core.crossplane.io/v1alpha1
|
||||
kind: ResourceClass
|
||||
metadata:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
parameters:
|
||||
adminLoginName: myadmin
|
||||
resourceGroupName: group-westus-1
|
||||
|
@ -38,7 +38,7 @@ parameters:
|
|||
storageGB: "25"
|
||||
backupRetentionDays: "7"
|
||||
geoRedundantBackup: "false"
|
||||
provisioner: mysqlserver.database.azure.conductor.io/v1alpha1
|
||||
provisioner: mysqlserver.database.azure.crossplane.io/v1alpha1
|
||||
providerRef:
|
||||
name: azure-sql-provider
|
||||
reclaimPolicy: Delete
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
apiVersion: storage.conductor.io/v1alpha1
|
||||
apiVersion: storage.crossplane.io/v1alpha1
|
||||
kind: MySQLInstance
|
||||
metadata:
|
||||
name: mysql-instance
|
||||
spec:
|
||||
classReference:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
engineVersion: "5.7"
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
|
|
|
@ -9,7 +9,7 @@ data:
|
|||
credentials.json: BASE64ENCODED_AZURE_PROVIDER_CREDS
|
||||
---
|
||||
# Azure Provider with service principal secret reference - used to provision sql resources
|
||||
apiVersion: azure.conductor.io/v1alpha1
|
||||
apiVersion: azure.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: azure-sql-provider
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
apiVersion: database.azure.conductor.io/v1alpha1
|
||||
apiVersion: database.azure.crossplane.io/v1alpha1
|
||||
kind: MysqlServer
|
||||
metadata:
|
||||
labels:
|
||||
name: conductor-wordpress-mysql
|
||||
name: crossplane-wordpress-mysql
|
||||
spec:
|
||||
providerRef:
|
||||
name: azure-sql-provider
|
||||
|
|
|
@ -4,17 +4,17 @@ apiVersion: v1
|
|||
kind: Secret
|
||||
metadata:
|
||||
name: gcp-provider-creds
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
type: Opaque
|
||||
data:
|
||||
credentials.json: BASE64ENCODED_GCP_PROVIDER_CREDS
|
||||
---
|
||||
# GCP Provider with service account secret reference - used to provision sql resources
|
||||
apiVersion: gcp.conductor.io/v1alpha1
|
||||
apiVersion: gcp.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: gcp-sql-provider
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
spec:
|
||||
credentialsSecretRef:
|
||||
name: gcp-provider-creds
|
||||
|
@ -25,16 +25,16 @@ spec:
|
|||
---
|
||||
# ResourceClass that defines the blueprint for how a "standard" CloudSQL instance
|
||||
# should be dynamically provisioned
|
||||
apiVersion: core.conductor.io/v1alpha1
|
||||
apiVersion: core.crossplane.io/v1alpha1
|
||||
kind: ResourceClass
|
||||
metadata:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
parameters:
|
||||
tier: db-n1-standard-1
|
||||
region: us-west2
|
||||
storageType: PD_SSD
|
||||
provisioner: cloudsqlinstance.database.gcp.conductor.io/v1alpha1
|
||||
provisioner: cloudsqlinstance.database.gcp.crossplane.io/v1alpha1
|
||||
providerRef:
|
||||
name: gcp-sql-provider
|
||||
reclaimPolicy: Delete
|
||||
|
|
|
@ -10,14 +10,14 @@ type: Opaque
|
|||
data:
|
||||
credentials.json: BASE64ENCODED_GCP_SQL_CREDS
|
||||
---
|
||||
apiVersion: storage.conductor.io/v1alpha1
|
||||
apiVersion: storage.crossplane.io/v1alpha1
|
||||
kind: MySQLInstance
|
||||
metadata:
|
||||
name: mysql-instance
|
||||
spec:
|
||||
classReference:
|
||||
name: standard
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
engineVersion: "5.7"
|
||||
---
|
||||
apiVersion: extensions/v1beta1
|
||||
|
|
|
@ -9,7 +9,7 @@ data:
|
|||
credentials.json: BASE64ENCODED_GCP_PROVIDER_CREDS
|
||||
---
|
||||
# GCP Provider with service account secret reference - used to provision sql resources
|
||||
apiVersion: gcp.conductor.io/v1alpha1
|
||||
apiVersion: gcp.crossplane.io/v1alpha1
|
||||
kind: Provider
|
||||
metadata:
|
||||
name: gcp-sql-provider
|
||||
|
|
|
@ -10,11 +10,11 @@ type: Opaque
|
|||
data:
|
||||
credentials.json: BASE64ENCODED_GCP_SQL_CREDS
|
||||
---
|
||||
apiVersion: database.gcp.conductor.io/v1alpha1
|
||||
apiVersion: database.gcp.crossplane.io/v1alpha1
|
||||
kind: CloudsqlInstance
|
||||
metadata:
|
||||
labels:
|
||||
name: conductor-wordpress-cloudsql
|
||||
name: crossplane-wordpress-cloudsql
|
||||
spec:
|
||||
providerRef:
|
||||
name: gcp-sql-provider
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
apiVersion: compute.conductor.io/v1alpha1
|
||||
apiVersion: compute.crossplane.io/v1alpha1
|
||||
kind: Workload
|
||||
metadata:
|
||||
name: my-workload
|
||||
|
@ -6,7 +6,7 @@ metadata:
|
|||
spec:
|
||||
classReference:
|
||||
name: cluster-class
|
||||
namespace: conductor-system
|
||||
namespace: crossplane-system
|
||||
secretName: my-bucket-creds
|
||||
clusterVersion: 1.0.1
|
||||
selector: {}
|
||||
|
|
|
@ -4,7 +4,7 @@ RUN apk --no-cache add ca-certificates bash
|
|||
ARG ARCH
|
||||
ARG TINI_VERSION
|
||||
|
||||
ADD conductor /usr/local/bin/
|
||||
ADD crossplane /usr/local/bin/
|
||||
EXPOSE 8080
|
||||
ENTRYPOINT ["conductor"]
|
||||
ENTRYPOINT ["crossplane"]
|
||||
CMD ["--install-crds=false"]
|
|
@ -6,7 +6,7 @@ include ../../../build/makelib/common.mk
|
|||
|
||||
# ====================================================================================
|
||||
# Options
|
||||
IMAGE = $(BUILD_REGISTRY)/conductor-$(ARCH)
|
||||
IMAGE = $(BUILD_REGISTRY)/crossplane-$(ARCH)
|
||||
include ../../../build/makelib/image.mk
|
||||
|
||||
# ====================================================================================
|
||||
|
@ -15,7 +15,7 @@ include ../../../build/makelib/image.mk
|
|||
img.build:
|
||||
@$(INFO) docker build $(IMAGE)
|
||||
@cp Dockerfile $(IMAGE_TEMP_DIR) || $(FAIL)
|
||||
@cp $(OUTPUT_DIR)/bin/$(OS)_$(ARCH)/conductor $(IMAGE_TEMP_DIR) || $(FAIL)
|
||||
@cp $(OUTPUT_DIR)/bin/$(OS)_$(ARCH)/crossplane $(IMAGE_TEMP_DIR) || $(FAIL)
|
||||
@cd $(IMAGE_TEMP_DIR) && $(SED_CMD) 's|BASEIMAGE|$(OSBASEIMAGE)|g' Dockerfile || $(FAIL)
|
||||
@docker build $(BUILD_ARGS) \
|
||||
--build-arg ARCH=$(ARCH) \
|
|
@ -1,14 +1,14 @@
|
|||
# Conductor Local Deployment and Test
|
||||
# Crossplane Local Deployment and Test
|
||||
|
||||
The Local Framework is used to run end to end and integration tests on Conductor. The framework depends on a running instance of Kubernetes.
|
||||
The Local Framework is used to run end to end and integration tests on Crossplane. The framework depends on a running instance of Kubernetes.
|
||||
The framework also provides scripts for starting Kubernetes using `minikube` so users can
|
||||
quickly spin up a Kubernetes cluster.The Local framework is designed to install Conductor, run tests, and uninstall Conductor.
|
||||
quickly spin up a Kubernetes cluster.The Local framework is designed to install Crossplane, run tests, and uninstall Crossplane.
|
||||
|
||||
## Requirements
|
||||
1. Docker version => 1.2 && < 17.0
|
||||
2. Ubuntu 16 (the framework has only been tested on this version)
|
||||
3. Kubernetes with kubectl configured
|
||||
4. Conductor
|
||||
4. Crossplane
|
||||
|
||||
## Instructions
|
||||
|
||||
|
@ -27,7 +27,7 @@ Starting the cluster on Minikube is as simple as running:
|
|||
cluster/local/minikube.sh up
|
||||
```
|
||||
|
||||
To copy Conductor image generated from your local build into the Minikube VM, run the following commands after `minikube.sh up` succeeded:
|
||||
To copy Crossplane image generated from your local build into the Minikube VM, run the following commands after `minikube.sh up` succeeded:
|
||||
```
|
||||
cluster/local/minikube.sh helm-install
|
||||
```
|
||||
|
@ -44,7 +44,7 @@ cluster/local/minikube.sh
|
|||
|
||||
## Run Tests
|
||||
From the project root do the following:
|
||||
#### 1. Build conductor:
|
||||
#### 1. Build crossplane:
|
||||
```
|
||||
make build
|
||||
```
|
||||
|
@ -54,15 +54,15 @@ make build
|
|||
cluster/local/minikube.sh up
|
||||
```
|
||||
|
||||
#### 3. Install Conductor
|
||||
#### 3. Install Crossplane
|
||||
```
|
||||
cluster/local/minikube.sh helm-install
|
||||
```
|
||||
|
||||
#### 4. Interact with Conductor
|
||||
#### 4. Interact with Crossplane
|
||||
Use `kubectl` to create and/or delete external resources CRD's in your Minikube cluster
|
||||
|
||||
#### 5. Uninstall Conductor
|
||||
#### 5. Uninstall Crossplane
|
||||
```
|
||||
cluster/local/minikube.sh helm-delete
|
||||
```
|
||||
|
|
|
@ -12,7 +12,7 @@ eval $(make --no-print-directory -C ${scriptdir}/../.. build.vars)
|
|||
|
||||
BUILD_IMAGE="${BUILD_REGISTRY}/${PROJECT_NAME}-amd64"
|
||||
MINIKUBE_IMAGE="upbound/${PROJECT_NAME}:master"
|
||||
DEFAULT_NAMESPACE="conductor-system"
|
||||
DEFAULT_NAMESPACE="crossplane-system"
|
||||
|
||||
function wait_for_ssh() {
|
||||
local tries=100
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,8 +20,8 @@ import (
|
|||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/upbound/conductor/pkg/apis"
|
||||
"github.com/upbound/conductor/pkg/controller"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis"
|
||||
"github.com/crossplaneio/crossplane/pkg/controller"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
"sigs.k8s.io/controller-runtime/pkg/manager"
|
||||
"sigs.k8s.io/controller-runtime/pkg/runtime/signals"
|
|
@ -15,12 +15,12 @@ This proposal explores the idea of a Custom Secret Definition (CSD).
|
|||
We borrow heavily from CRDs in this design. Here's an example, CSD:
|
||||
|
||||
```yaml
|
||||
apiVersion: core.conductor.io/v1alpha1
|
||||
apiVersion: core.crossplane.io/v1alpha1
|
||||
kind: CustomSecretDefinition
|
||||
metadata:
|
||||
name: mysql.database.conductor.io
|
||||
name: mysql.database.crossplane.io
|
||||
spec:
|
||||
group: database.conductor.io
|
||||
group: database.crossplane.io
|
||||
names:
|
||||
kind: mysql
|
||||
version: v1alpha1
|
||||
|
@ -43,7 +43,7 @@ apiVersion: v1
|
|||
kind: Secret
|
||||
metadata:
|
||||
name: mysecret
|
||||
type: mysql.v1alpha1.database.conductor.io
|
||||
type: mysql.v1alpha1.database.crossplane.io
|
||||
data:
|
||||
username: YWRtaW4=
|
||||
password: MWYyZDFlMmU2N2Rm
|
||||
|
|
|
@ -11,7 +11,7 @@ Azure service principal credentials are needed for an admin account, which must
|
|||
Please refer to the [targeting Azure section](./troubleshooting.md#targeting-microsoft-azure) for details on how to create this account with the required permissions from the table above.
|
||||
After the account is created, you should have 1 file on your local filesystem:
|
||||
|
||||
* `conductor-azure-provider-key.json`
|
||||
* `crossplane-azure-provider-key.json`
|
||||
|
||||
## Set environment variables
|
||||
|
||||
|
@ -33,7 +33,7 @@ kubectl create namespace demo
|
|||
Deploy the Azure provider object to your cluster:
|
||||
|
||||
```console
|
||||
sed "s/BASE64ENCODED_AZURE_PROVIDER_CREDS/`cat conductor-azure-provider-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/azure/class/provider.yaml | kubectl create -f -
|
||||
sed "s/BASE64ENCODED_AZURE_PROVIDER_CREDS/`cat crossplane-azure-provider-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/azure/class/provider.yaml | kubectl create -f -
|
||||
```
|
||||
|
||||
Now deploy all the Wordpress resources, including the SQL database, with the following single command:
|
||||
|
|
|
@ -12,8 +12,8 @@ Google service account credentials are needed for two separate accounts, these m
|
|||
Please refer to the [targeting GCP section](./troubleshooting.md#targeting-google-cloud-platform-gcp) for details on how to create these accounts with the required roles from the table above.
|
||||
After the accounts are created, you should have two JSON key files on your local filesystem:
|
||||
|
||||
* `conductor-gcp-provider-key.json`
|
||||
* `conductor-gcp-sql-key.json`
|
||||
* `crossplane-gcp-provider-key.json`
|
||||
* `crossplane-gcp-sql-key.json`
|
||||
|
||||
## Set environment variables
|
||||
|
||||
|
@ -35,13 +35,13 @@ kubectl create namespace demo
|
|||
Deploy the GCP provider object to your cluster:
|
||||
|
||||
```console
|
||||
sed "s/BASE64ENCODED_GCP_PROVIDER_CREDS/`cat conductor-gcp-provider-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/gcp/class/provider.yaml | kubectl create -f -
|
||||
sed "s/BASE64ENCODED_GCP_PROVIDER_CREDS/`cat crossplane-gcp-provider-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/gcp/class/provider.yaml | kubectl create -f -
|
||||
```
|
||||
|
||||
Now deploy all the Wordpress resources, including the Cloud SQL database, with the following single command:
|
||||
|
||||
```console
|
||||
sed "s/BASE64ENCODED_GCP_SQL_CREDS/`cat conductor-gcp-sql-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/gcp/class/wordpress.yaml | kubectl -n demo create -f -
|
||||
sed "s/BASE64ENCODED_GCP_SQL_CREDS/`cat crossplane-gcp-sql-key.json|base64|tr -d '\n'`/g" cluster/examples/wordpress/gcp/class/wordpress.yaml | kubectl -n demo create -f -
|
||||
```
|
||||
|
||||
Now you can proceed back to the main quickstart to [wait for the resources to become ready](./quickstart.md#waiting-for-completion).
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
# Conductor Quickstart
|
||||
# Crossplane Quickstart
|
||||
|
||||
## Install Conductor
|
||||
## Install Crossplane
|
||||
|
||||
Install Conductor in a GKE cluster first, for example with the following `helm` command after setting your preferred values for `image.repository` and `image.tag` in the `values.yaml` file:
|
||||
Install Crossplane in a GKE cluster first, for example with the following `helm` command after setting your preferred values for `image.repository` and `image.tag` in the `values.yaml` file:
|
||||
|
||||
```bash
|
||||
helm install --name conductor --namespace conductor-system ${GOPATH}/src/github.com/upbound/conductor/cluster/charts/conductor
|
||||
helm install --name crossplane --namespace crossplane-system ${GOPATH}/src/github.com/crossplaneio/crossplane/cluster/charts/crossplane
|
||||
```
|
||||
|
||||
## Wordpress on AWS
|
||||
|
@ -29,19 +29,19 @@ kubectl -n demo get pod
|
|||
```
|
||||
|
||||
While the database is being deployed, you'll see the Wordpress pod in the `CreateContainerConfigError` status for awhile.
|
||||
Follow along with the database deployment progress by watching the Conductor logs:
|
||||
Follow along with the database deployment progress by watching the Crossplane logs:
|
||||
|
||||
```console
|
||||
kubectl -n conductor-system logs -f $(kubectl -n conductor-system get pod -l app=conductor -o jsonpath='{.items[0].metadata.name}')
|
||||
kubectl -n crossplane-system logs -f $(kubectl -n crossplane-system get pod -l app=crossplane -o jsonpath='{.items[0].metadata.name}')
|
||||
```
|
||||
|
||||
You can also watch the resources over time with the following watch command:
|
||||
```console
|
||||
watch -t -n1 "echo CONDUCTOR-SYSTEM PODS && kubectl get pods -n conductor-system -o wide && echo && \
|
||||
watch -t -n1 "echo crossplane-system PODS && kubectl get pods -n crossplane-system -o wide && echo && \
|
||||
echo PODS && kubectl get pods -n demo -o wide && echo && \
|
||||
echo SERVICES && kubectl -n demo get svc -o wide && echo && \
|
||||
echo MYSQL CLAIMS && kubectl -n demo get mysqlinstance mysql-instance -o jsonpath='{.metadata.name}{\"\t\"}{.status.bindingPhase}{\"\t\"}{range .status.Conditions[*]}{.Type}{\"=\"}{.Status}{\"\t\"}{end}' && echo && echo &&\
|
||||
echo MYSQL INSTANCES && kubectl -n conductor-system get ${DATABASE_TYPE} -o jsonpath='{range .items[*]}{.metadata.name}{\"\t\"}{.status.bindingPhase}{\"\t\"}{.status.state}{\"\t\"}{range .status.Conditions[*]}{.Type}{\"=\"}{.Status}{\"\t\"}{end}{end}' && echo && \
|
||||
echo MYSQL INSTANCES && kubectl -n crossplane-system get ${DATABASE_TYPE} -o jsonpath='{range .items[*]}{.metadata.name}{\"\t\"}{.status.bindingPhase}{\"\t\"}{.status.state}{\"\t\"}{range .status.Conditions[*]}{.Type}{\"=\"}{.Status}{\"\t\"}{end}{end}' && echo && \
|
||||
echo && echo NODES && kubectl get nodes -o wide"
|
||||
```
|
||||
|
||||
|
|
|
@ -6,16 +6,16 @@ General help on debugging applications running in Kubernetes can be found in the
|
|||
|
||||
## Logs
|
||||
|
||||
The first place to look for more details about any issue with Conductor would be its logs:
|
||||
The first place to look for more details about any issue with Crossplane would be its logs:
|
||||
|
||||
```console
|
||||
kubectl -n conductor-system logs -f $(kubectl -n conductor-system get pod -l app=conductor -o jsonpath='{.items[0].metadata.name}')
|
||||
kubectl -n crossplane-system logs -f $(kubectl -n crossplane-system get pod -l app=crossplane -o jsonpath='{.items[0].metadata.name}')
|
||||
```
|
||||
|
||||
## Targeting Google Cloud Platform (GCP)
|
||||
|
||||
Conductor runs in any Kubernetes control plane and it is possible to target and manage environments external to the control plane it is running in.
|
||||
In order to manage resources in GCP, you must provide credentials for a GCP service account that Conductor can use to authenticate.
|
||||
Crossplane runs in any Kubernetes control plane and it is possible to target and manage environments external to the control plane it is running in.
|
||||
In order to manage resources in GCP, you must provide credentials for a GCP service account that Crossplane can use to authenticate.
|
||||
Normally, you don't need to create a brand new GCP key.
|
||||
Instead, just obtain an existing key from a system administrator.
|
||||
|
||||
|
@ -34,25 +34,25 @@ After configuring `gcloud`, the service account must be created, you can skip th
|
|||
|
||||
```bash
|
||||
# optional, skip this if the account has already been created
|
||||
gcloud iam service-accounts create conductor-gcp-provider --display-name "conductor-gcp-provider"
|
||||
gcloud iam service-accounts create crossplane-gcp-provider --display-name "crossplane-gcp-provider"
|
||||
```
|
||||
|
||||
### Create Service Account Key File
|
||||
|
||||
Next create a local file called `conductor-gcp-provider-key.json` with all the credentials information stored in it.
|
||||
Next create a local file called `crossplane-gcp-provider-key.json` with all the credentials information stored in it.
|
||||
|
||||
```bash
|
||||
gcloud iam service-accounts keys create conductor-gcp-provider-key.json --iam-account conductor-gcp-provider@${PROJECT_ID}.iam.gserviceaccount.com
|
||||
gcloud iam service-accounts keys create crossplane-gcp-provider-key.json --iam-account crossplane-gcp-provider@${PROJECT_ID}.iam.gserviceaccount.com
|
||||
```
|
||||
|
||||
### Bind Roles to Service Account
|
||||
|
||||
Currently, Conductor requires only one role for its operations, this list will continue to expand as support for new resources is added.
|
||||
Currently, Crossplane requires only one role for its operations, this list will continue to expand as support for new resources is added.
|
||||
|
||||
* CloudSQL Admin: Full management of Cloud SQL instances and related objects.
|
||||
|
||||
```bash
|
||||
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member "serviceAccount:conductor-gcp-provider@${PROJECT_ID}.iam.gserviceaccount.com" --role "roles/cloudsql.admin"
|
||||
gcloud projects add-iam-policy-binding ${PROJECT_ID} --member "serviceAccount:crossplane-gcp-provider@${PROJECT_ID}.iam.gserviceaccount.com" --role "roles/cloudsql.admin"
|
||||
```
|
||||
|
||||
### (Optional) GCP Service Account Secret
|
||||
|
@ -61,7 +61,7 @@ If the example you are walking through does not create a Kubernetes secret, you
|
|||
|
||||
```bash
|
||||
# optional, skip if the example does this for you
|
||||
kubectl -n conductor-system create secret generic gcp-service-account-creds --from-file credentials.json=conductor-gcp-provider-key.json
|
||||
kubectl -n crossplane-system create secret generic gcp-service-account-creds --from-file credentials.json=crossplane-gcp-provider-key.json
|
||||
```
|
||||
|
||||
## GKE RBAC
|
||||
|
@ -70,7 +70,7 @@ On GKE clusters, the default cluster role associated with your Google account do
|
|||
When running `make deploy`, you will see an error that contains a message similar to the following:
|
||||
|
||||
```console
|
||||
clusterroles.rbac.authorization.k8s.io "conductor-manager-role" is forbidden: attempt to grant extra privileges
|
||||
clusterroles.rbac.authorization.k8s.io "crossplane-manager-role" is forbidden: attempt to grant extra privileges
|
||||
```
|
||||
|
||||
To work around this, you will you need to run a command **one time** that is **similar** to the following in order to bind your Google credentials `cluster-admin` role:
|
||||
|
@ -81,11 +81,11 @@ kubectl create clusterrolebinding dev-cluster-admin-binding --clusterrole=cluste
|
|||
|
||||
## Targeting Microsoft Azure
|
||||
|
||||
In order to manage resources in Azure, you must provide credentials for a Azure service principal that Conductor can use to authenticate.
|
||||
In order to manage resources in Azure, you must provide credentials for a Azure service principal that Crossplane can use to authenticate.
|
||||
This assumes that you have already [set up the Azure CLI client](https://docs.microsoft.com/en-us/cli/azure/authenticate-azure-cli?view=azure-cli-latest) with your credentials.
|
||||
|
||||
Create a JSON file that contains all the information needed to connect and authenticate to Azure:
|
||||
|
||||
```console
|
||||
az ad sp create-for-rbac --sdk-auth > conductor-azure-provider-key.json
|
||||
az ad sp create-for-rbac --sdk-auth > crossplane-azure-provider-key.json
|
||||
```
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -21,12 +21,12 @@ limitations under the License.
|
|||
package apis
|
||||
|
||||
import (
|
||||
"github.com/upbound/conductor/pkg/apis/aws"
|
||||
"github.com/upbound/conductor/pkg/apis/azure"
|
||||
"github.com/upbound/conductor/pkg/apis/compute"
|
||||
"github.com/upbound/conductor/pkg/apis/core"
|
||||
"github.com/upbound/conductor/pkg/apis/gcp"
|
||||
"github.com/upbound/conductor/pkg/apis/storage"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/aws"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/azure"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/compute"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/core"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/gcp"
|
||||
"github.com/crossplaneio/crossplane/pkg/apis/storage"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -18,9 +18,9 @@ limitations under the License.
|
|||
package aws
|
||||
|
||||
import (
|
||||
compute "github.com/upbound/conductor/pkg/apis/aws/compute/v1alpha1"
|
||||
database "github.com/upbound/conductor/pkg/apis/aws/database/v1alpha1"
|
||||
aws "github.com/upbound/conductor/pkg/apis/aws/v1alpha1"
|
||||
compute "github.com/crossplaneio/crossplane/pkg/apis/aws/compute/v1alpha1"
|
||||
database "github.com/crossplaneio/crossplane/pkg/apis/aws/database/v1alpha1"
|
||||
aws "github.com/crossplaneio/crossplane/pkg/apis/aws/v1alpha1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the compute v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws/compute
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws/compute
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=compute.aws.conductor.io
|
||||
// +groupName=compute.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,9 +19,9 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the compute v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/aws/apis/aws/compute
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/aws/apis/aws/compute
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=compute.aws.conductor.io
|
||||
// +groupName=compute.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
|
@ -30,7 +30,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
Group = "compute.aws.conductor.io"
|
||||
Group = "compute.aws.crossplane.io"
|
||||
Version = "v1alpha1"
|
||||
APIVersion = Group + "/" + Version
|
||||
EKSClusterKind = "eksclusters"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,8 +17,8 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
"github.com/upbound/conductor/pkg/util"
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"github.com/crossplaneio/crossplane/pkg/util"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -21,9 +21,9 @@ import (
|
|||
"log"
|
||||
"testing"
|
||||
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"github.com/crossplaneio/crossplane/pkg/test"
|
||||
. "github.com/onsi/gomega"
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
"github.com/upbound/conductor/pkg/test"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the database v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws/database
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws/database
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=database.aws.conductor.io
|
||||
// +groupName=database.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,8 +20,8 @@ import (
|
|||
"strconv"
|
||||
"strings"
|
||||
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
"github.com/upbound/conductor/pkg/util"
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"github.com/crossplaneio/crossplane/pkg/util"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,8 +19,8 @@ package v1alpha1
|
|||
import (
|
||||
"testing"
|
||||
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
. "github.com/onsi/gomega"
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,9 +19,9 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the database v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws/database
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws/database
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=database.aws.conductor.io
|
||||
// +groupName=database.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
|
@ -30,7 +30,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
Group = "database.aws.conductor.io"
|
||||
Group = "database.aws.crossplane.io"
|
||||
Version = "v1alpha1"
|
||||
APIVersion = Group + "/" + Version
|
||||
RDSInstanceKind = "rdsinstance"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,7 +20,7 @@ import (
|
|||
"log"
|
||||
"testing"
|
||||
|
||||
"github.com/upbound/conductor/pkg/test"
|
||||
"github.com/crossplaneio/crossplane/pkg/test"
|
||||
"golang.org/x/net/context"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,33 +20,33 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
"k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
v1 "k8s.io/api/core/v1"
|
||||
runtime "k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
|
||||
func (r *RDSInstance) DeepCopyInto(out *RDSInstance) {
|
||||
*out = *r
|
||||
out.TypeMeta = r.TypeMeta
|
||||
r.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
r.Spec.DeepCopyInto(&out.Spec)
|
||||
r.Status.DeepCopyInto(&out.Status)
|
||||
func (in *RDSInstance) DeepCopyInto(out *RDSInstance) {
|
||||
*out = *in
|
||||
out.TypeMeta = in.TypeMeta
|
||||
in.ObjectMeta.DeepCopyInto(&out.ObjectMeta)
|
||||
in.Spec.DeepCopyInto(&out.Spec)
|
||||
in.Status.DeepCopyInto(&out.Status)
|
||||
return
|
||||
}
|
||||
|
||||
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RDSInstance.
|
||||
func (r *RDSInstance) DeepCopy() *RDSInstance {
|
||||
if r == nil {
|
||||
func (in *RDSInstance) DeepCopy() *RDSInstance {
|
||||
if in == nil {
|
||||
return nil
|
||||
}
|
||||
out := new(RDSInstance)
|
||||
r.DeepCopyInto(out)
|
||||
in.DeepCopyInto(out)
|
||||
return out
|
||||
}
|
||||
|
||||
// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.
|
||||
func (r *RDSInstance) DeepCopyObject() runtime.Object {
|
||||
if c := r.DeepCopy(); c != nil {
|
||||
func (in *RDSInstance) DeepCopyObject() runtime.Object {
|
||||
if c := in.DeepCopy(); c != nil {
|
||||
return c
|
||||
}
|
||||
return nil
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws/storage
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws/storage
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=storage.aws.conductor.io
|
||||
// +groupName=storage.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,9 +19,9 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the storage v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws/storage
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws/storage
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=storage.aws.conductor.io
|
||||
// +groupName=storage.aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
|
@ -31,7 +31,7 @@ import (
|
|||
|
||||
var (
|
||||
// SchemeGroupVersion is group version used to register these objects
|
||||
SchemeGroupVersion = schema.GroupVersion{Group: "storage.aws.conductor.io", Version: "v1alpha1"}
|
||||
SchemeGroupVersion = schema.GroupVersion{Group: "storage.aws.crossplane.io", Version: "v1alpha1"}
|
||||
|
||||
// SchemeBuilder is used to add go types to the GroupVersionKind scheme
|
||||
SchemeBuilder = &scheme.Builder{GroupVersion: SchemeGroupVersion}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -34,7 +34,7 @@ var c client.Client
|
|||
func TestMain(m *testing.M) {
|
||||
t := &envtest.Environment{
|
||||
CRDDirectoryPaths: []string{filepath.Join("..", "..", "..", "..", "..",
|
||||
"cluster", "charts", "conductor", "crds", "aws", "storage", "v1alpha1")},
|
||||
"cluster", "charts", "crossplane", "crds", "aws", "storage", "v1alpha1")},
|
||||
}
|
||||
|
||||
err := SchemeBuilder.AddToScheme(scheme.Scheme)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the aws v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/aws
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/aws
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=aws.conductor.io
|
||||
// +groupName=aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,9 +19,9 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the aws v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/aws/apis/aws
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/aws/apis/aws
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=aws.conductor.io
|
||||
// +groupName=aws.crossplane.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
|
@ -30,7 +30,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
Group = "aws.conductor.io"
|
||||
Group = "aws.crossplane.io"
|
||||
Version = "v1alpha1"
|
||||
APIVersion = Group + "/" + Version
|
||||
ProviderKind = "provider"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
package v1alpha1
|
||||
|
||||
import (
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,7 +20,7 @@ import (
|
|||
"log"
|
||||
"testing"
|
||||
|
||||
"github.com/upbound/conductor/pkg/test"
|
||||
"github.com/crossplaneio/crossplane/pkg/test"
|
||||
"golang.org/x/net/context"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// +build !ignore_autogenerated
|
||||
|
||||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -18,8 +18,8 @@ limitations under the License.
|
|||
package azure
|
||||
|
||||
import (
|
||||
databasev1alpha1 "github.com/upbound/conductor/pkg/apis/azure/database/v1alpha1"
|
||||
azure "github.com/upbound/conductor/pkg/apis/azure/v1alpha1"
|
||||
databasev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/azure/database/v1alpha1"
|
||||
azure "github.com/crossplaneio/crossplane/pkg/apis/azure/v1alpha1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -17,7 +17,7 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the database v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/apis/azure/database
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/apis/azure/database
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=database.azure.conductor.io
|
||||
// +groupName=database.azure.crossplane.io
|
||||
package v1alpha1
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -20,8 +20,8 @@ import (
|
|||
"strconv"
|
||||
|
||||
"github.com/Azure/azure-sdk-for-go/services/mysql/mgmt/2017-12-01/mysql"
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
"github.com/upbound/conductor/pkg/util"
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"github.com/crossplaneio/crossplane/pkg/util"
|
||||
"k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,8 +19,8 @@ package v1alpha1
|
|||
import (
|
||||
"testing"
|
||||
|
||||
corev1alpha1 "github.com/crossplaneio/crossplane/pkg/apis/core/v1alpha1"
|
||||
"github.com/onsi/gomega"
|
||||
corev1alpha1 "github.com/upbound/conductor/pkg/apis/core/v1alpha1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -19,9 +19,9 @@ limitations under the License.
|
|||
// Package v1alpha1 contains API Schema definitions for the database v1alpha1 API group
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:deepcopy-gen=package,register
|
||||
// +k8s:conversion-gen=github.com/upbound/conductor/pkg/azure/apis/azure/database
|
||||
// +k8s:conversion-gen=github.com/crossplaneio/crossplane/pkg/azure/apis/azure/database
|
||||
// +k8s:defaulter-gen=TypeMeta
|
||||
// +groupName=database.azure.conductor.io
|
||||
// +groupName=database.azure.crossplane.io
|
||||
package v1alpha1
|
||||
|
||||
import (
|
||||
|
@ -30,7 +30,7 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
Group = "database.azure.conductor.io"
|
||||
Group = "database.azure.crossplane.io"
|
||||
Version = "v1alpha1"
|
||||
APIVersion = Group + "/" + Version
|
||||
MysqlServerKind = "mysqlserver"
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2018 The Conductor Authors.
|
||||
Copyright 2018 The Crossplane Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -21,7 +21,7 @@ import (
|
|||
"log"
|
||||
"testing"
|
||||
|
||||
"github.com/upbound/conductor/pkg/test"
|
||||
"github.com/crossplaneio/crossplane/pkg/test"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
"k8s.io/client-go/rest"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue