Merge pull request #569 from wonderflow/redou

delete redundant example folder, it's docs/examples
This commit is contained in:
Jianbo Sun
2020-11-11 17:08:48 +08:00
committed by GitHub
41 changed files with 2 additions and 2816 deletions
+2 -2
View File
@@ -37,8 +37,8 @@ services:
# enabled: true
# autoscale:
# minReplicas: 1
# maxReplicas: 4
# min: 1
# max: 4
# cron:
# startAt: "14:00"
# duration: "2h"
-78
View File
@@ -1,78 +0,0 @@
# Kubecon 2020 NA Kubevela Tutorial
## Pre-requisites
* Kubernetes cluster version >1.16
(minikube or kind are fine)
* Verify with `kubectl config current-context` and `kubectl version`
* One of the crossplane supported public cloud (AWS, Azure, Alibaba Cloud, GCK) access key and secret
* Install Crossplane(later)
* Download KubeVela release from [release page](https://github.com/oam-dev/kubevela/releases/tag/v0.0.9)
* Unpack the package and add it to `PATH` by running `sudo mv ./vela /usr/local/bin/vela`
* Run `vela install`
## Lab 1: Use vela to deploy a simple application
### Purpose: Showcase the simple to use, application centric vela user interfaces.
* Sync with cluster `vela system update`
* List installed workloads `vela workloads`
* List installed traits `vela traits`
* Deploy a simple application with
```
vela svc deploy back -t worker --image crccheck/hello-world --app lab1
vela svc deploy front -t webservice --image crccheck/hello-world --port 8000 --app lab1
```
* Show application status `vela app show lab1`
## Lab 2: Add and apply KubeWatch
### Purpose: Showcase the steps to add and use capacity from community
* Create a [slack bot](https://api.slack.com/apps?new_app=1)
* Add a cap center `vela cap center config mycap https://github.com/oam-dev/catalog/tree/master/registry`
* Check capabilities `vela cap ls`
* Install the kubewatch capability `vela cap add mycap/kubewatch`
* Create an application `vela comp deploy mycomp -t webservice --image crccheck/hello-world --port 8000 --app lab2`
* Add kubewatch trait to the application `vela kubewatch mycomp --app lab2 --webhook https://hooks.slack.com/<yourid>`
* Check the slack channel to verify the notifications
## Lab 3: Manage cloud resource and applications in application centric way
### Purpose: Showcase the application centric view of appfile
### Install Crossplane (This lab uses crossplane version 0.13)
Also the examples are based on Alibaba Cloud settings
* Create crossplane namespace: `kubectl create ns crossplane-system`
* Install crossplane helm chart: `helm install crossplane charts/crossplane/ --namespace crossplane-system`
* Install crossplane cli: `curl -sL https://raw.githubusercontent.com/crossplane/crossplane/release-0.13/install.sh | sh`
* Add crossplane to `PATH`: `sudo mv kubectl-crossplane /usr/local/bin`
* Configure cloud provider(Alibaba Cloud)
* Add cloud provider: `kubectl crossplane install provider crossplane/provider-alibaba:v0.3.0`
* Create provider secret: `kubectl create secret generic alibaba-creds --from-literal=accessKeyId=<change here> --from-literal=accessKeySecret=<change here> -n crossplane-system`
* Configure the provider: `kubectl apply -f script/provider.yaml`
* Configure infrastructure: `kubectl crossplane install configuration crossplane/getting-started-with-alibaba:v0.13`
### Import the database workload definition
First, register the db workload definition:
`kubectl apply -f script/def_db.yaml`
The webservice workload is customized a little.
`kubectl apply -f script/webservice.yaml`
Don't forget to update vela:
`vela system update`
### Apply the appfile
`vela up`
### Access the web-ui
If you have a cluster supporting Ingress, the route trait will work.
`kubectl get ingress` command will show the ip address of the web-ui. Copy that service and add the `<ip address> kubevela.kubecon.demo ` record to your local machine's `/etc/hosts`. Then you may access the GUI from web browser.
If you don't have Ingress installed, the eaisest way to access the demo app is through port forwarding :`kubectl port-forward <your webui pod name> 8080` and access it from browser using `http://localhost:8080`.
@@ -1,21 +0,0 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
@@ -1,36 +0,0 @@
apiVersion: v1
appVersion: 0.13.0
description: Crossplane is an open source Kubernetes add-on that extends any cluster
with the ability to provision and manage cloud infrastructure, services, and applications
using kubectl, GitOps, or any tool that works with the Kubernetes API.
home: https://crossplane.io
icon: https://crossplane.io/images/favicon_192x192.png
keywords:
- cloud
- infrastructure
- services
- application
- database
- cache
- bucket
- infra
- app
- ops
- oam
- gcp
- azure
- aws
- alibaba
- cloudsql
- rds
- s3
- azuredatabase
- asparadb
- gke
- aks
- eks
maintainers:
- email: info@crossplane.io
name: Crossplane Maintainers
name: crossplane
version: 0.13.0
@@ -1,8 +0,0 @@
Thanks for installing Crossplane!
Your next steps are:
1. Install Providers: https://crossplane.io/docs/master/getting-started/install-configure.html
2. Provision Infrastructure: https://crossplane.io/docs/master/getting-started/provision-infrastructure.html
3. Publish Infrastructure: https://crossplane.io/docs/master/getting-started/publish-infrastructure.html
4. Run Applications: https://crossplane.io/docs/master/getting-started/run-applications.html
@@ -1,128 +0,0 @@
# Install Crossplane
Crossplane can be easily installed into any existing Kubernetes cluster using
the regularly published Helm chart. The Helm chart contains all the custom
resources and controllers needed to deploy and configure Crossplane.
## Pre-requisites
* [Kubernetes cluster], minimum version `v1.15.0+`
* [Helm], minimum version `v3.0.0+`.
## Installation
Helm charts for Crossplane are currently published to the `alpha` and `master`
channels. In the future, `beta` and `stable` will also be available.
### Alpha
The alpha channel is the most recent release of Crossplane that is considered
ready for testing by the community.
```console
kubectl create namespace crossplane-system
helm repo add crossplane-alpha https://charts.crossplane.io/alpha
helm install crossplane --namespace crossplane-system crossplane-alpha/crossplane
```
### Master
The `master` channel contains the latest commits, with all automated tests
passing. `master` is subject to instability, incompatibility, and features may
be added or removed without much prior notice. It is recommended to use one of
the more stable channels, but if you want the absolute newest Crossplane
installed, then you can use the `master` channel.
To install the Helm chart from master, you will need to pass the specific
version returned by the `search` command:
```console
kubectl create namespace crossplane-system
helm repo add crossplane-master https://charts.crossplane.io/master/
helm search repo crossplane-master --devel
helm install crossplane --namespace crossplane-system crossplane-master/crossplane --version <version> --devel
```
## Uninstalling the Chart
To uninstall/delete the `crossplane` deployment:
```console
helm delete crossplane --namespace crossplane-system
```
That command removes all Kubernetes components associated with Crossplane,
including all the custom resources and controllers.
## Configuration
The following tables lists the configurable parameters of the Crossplane chart
and their default values.
| Parameter | Description | Default |
| --- | --- | --- |
| `image.repository` | Image | `crossplane/crossplane` |
| `image.tag` | Image tag | `master` |
| `image.pullPolicy` | Image pull policy | `Always` |
| `imagePullSecrets` | Names of image pull secrets to use | `dockerhub` |
| `replicas` | The number of replicas to run for the Crossplane and RBAC Manager (if enabled) pods | `1` |
| `deploymentStrategy` | The deployment strategy for the Crossplane and RBAC Manager (if enabled) pods | `RollingUpdate` |
| `priorityClassName` | Priority class name for Crossplane and RBAC Manager (if enabled) pods | `""` |
| `resourcesCrossplane.limits.cpu` | CPU resource limits for Crossplane | `100m` |
| `resourcesCrossplane.limits.memory` | Memory resource limits for Crossplane | `512Mi` |
| `resourcesCrossplane.requests.cpu` | CPU resource requests for Crossplane | `100m` |
| `resourcesCrossplane.requests.memory` | Memory resource requests for Crossplane | `256Mi` |
| `packageCache.medium` | Storage medium for package cache. `Memory` means volume will be backed by tmpfs, which can be useful for development. | `""` |
| `packageCache.sizeLimit` | Size limit for package cache. If medium is `Memory` then maximum usage would be the minimum of this value the sum of all memory limits on containers in the Crossplane pod. | `5Mi` |
| `packageCache.pvc` | Name of the PersistentVolumeClaim to be used as the package cache. Providing a value will cause the default emptyDir volume to not be mounted. | `""` |
| `resourcesRBACManager.limits.cpu` | CPU resource limits for RBAC Manager | `100m` |
| `resourcesRBACManager.limits.memory` | Memory resource limits for RBAC Manager | `512Mi` |
| `resourcesRBACManager.requests.cpu` | CPU resource requests for RBAC Manager | `100m` |
| `resourcesRBACManager.requests.memory` | Memory resource requests for RBAC Manager | `256Mi` |
| `rbacManager.deploy` | Deploy RBAC Manager and its required roles | `true` |
| `rbacManager.managementPolicy`| The extent to which the RBAC manager will manage permissions. `All` indicates to manage all Crossplane controller and user roles. `Basic` indicates to only manage Crossplane controller roles and the `crossplane-admin`, `crossplane-edit`, and `crossplane-view` user roles. | `All` |
| `alpha.oam.enabled` | Deploy the `crossplane/oam-kubernetes-runtime` Helm chart | `false` |
### Command Line
You can pass the settings with helm command line parameters. Specify each
parameter using the `--set key=value[,key=value]` argument to `helm install`.
For example, the following command will install Crossplane with an image pull
policy of `IfNotPresent`.
```console
helm install --namespace crossplane-system crossplane-alpha/crossplane --set image.pullPolicy=IfNotPresent
```
### Settings File
Alternatively, a yaml file that specifies the values for the above parameters
(`values.yaml`) can be provided while installing the chart.
```console
helm install crossplane --namespace crossplane-system crossplane-alpha/crossplane -f values.yaml
```
Here are the sample settings to get you started.
```yaml
replicas: 1
deploymentStrategy: RollingUpdate
image:
repository: crossplane/crossplane
tag: alpha
pullPolicy: Always
imagePullSecrets:
- dockerhub
```
<!-- Named Links -->
[Kubernetes cluster]: https://kubernetes.io/docs/setup/
[Minikube]: https://kubernetes.io/docs/tasks/tools/install-minikube/
[Helm]: https://docs.helm.sh/using_helm/
@@ -1,218 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: compositeresourcedefinitions.apiextensions.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: apiextensions.crossplane.io
names:
categories:
- crossplane
kind: CompositeResourceDefinition
listKind: CompositeResourceDefinitionList
plural: compositeresourcedefinitions
shortNames:
- xrd
singular: compositeresourcedefinition
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: An CompositeResourceDefinition defines a new kind of composite infrastructure resource. The new resource is composed of other composite or managed infrastructure resources.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: CompositeResourceDefinitionSpec specifies the desired state of the definition.
properties:
claimNames:
description: ClaimNames specifies the names of an optional composite resource claim. When claim names are specified Crossplane will create a namespaced 'composite resource claim' CRD that corresponds to the defined composite resource. This composite resource claim acts as a namespaced proxy for the composite resource; creating, updating, or deleting the claim will create, update, or delete a corresponding composite resource. You may add claim names to an existing CompositeResourceDefinition, but they cannot be changed once they have been set.
properties:
categories:
description: categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.
items:
type: string
type: array
kind:
description: kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.
type: string
listKind:
description: listKind is the serialized kind of the list for this resource. Defaults to "`kind`List".
type: string
plural:
description: plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.
type: string
shortNames:
description: shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase.
items:
type: string
type: array
singular:
description: singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.
type: string
required:
- kind
- plural
type: object
connectionSecretKeys:
description: ConnectionSecretKeys is the list of keys that will be exposed to the end user of the defined kind.
items:
type: string
type: array
crdSpecTemplate:
description: CRDSpecTemplate is the base CRD template. The final CRD will have additional fields to the base template to accommodate Crossplane machinery.
properties:
additionalPrinterColumns:
description: additionalPrinterColumns specifies additional columns returned in Table output. See https://kubernetes.io/docs/reference/using-api/api-concepts/#receiving-resources-as-tables for details. If present, this field configures columns for all versions. Top-level and per-version columns are mutually exclusive. If no top-level or per-version columns are specified, a single column displaying the age of the custom resource is used.
items:
description: CustomResourceColumnDefinition specifies a column for server side printing.
properties:
JSONPath:
description: JSONPath is a simple JSON path (i.e. with array notation) which is evaluated against each custom resource to produce the value for this column.
type: string
description:
description: description is a human readable description of this column.
type: string
format:
description: format is an optional OpenAPI type definition for this column. The 'name' format is applied to the primary identifier column to assist in clients identifying column is the resource name. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
type: string
name:
description: name is a human readable name for the column.
type: string
priority:
description: priority is an integer defining the relative importance of this column compared to others. Lower numbers are considered higher priority. Columns that may be omitted in limited space scenarios should be given a priority greater than 0.
format: int32
type: integer
type:
description: type is an OpenAPI type definition for this column. See https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#data-types for details.
type: string
required:
- JSONPath
- name
- type
type: object
type: array
group:
description: group is the API group of the defined custom resource. The custom resources are served under `/apis/<group>/...`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`).
type: string
names:
description: names specify the resource and kind names for the custom resource.
properties:
categories:
description: categories is a list of grouped resources this custom resource belongs to (e.g. 'all'). This is published in API discovery documents, and used by clients to support invocations like `kubectl get all`.
items:
type: string
type: array
kind:
description: kind is the serialized kind of the resource. It is normally CamelCase and singular. Custom resource instances will use this value as the `kind` attribute in API calls.
type: string
listKind:
description: listKind is the serialized kind of the list for this resource. Defaults to "`kind`List".
type: string
plural:
description: plural is the plural name of the resource to serve. The custom resources are served under `/apis/<group>/<version>/.../<plural>`. Must match the name of the CustomResourceDefinition (in the form `<names.plural>.<group>`). Must be all lowercase.
type: string
shortNames:
description: shortNames are short names for the resource, exposed in API discovery documents, and used by clients to support invocations like `kubectl get <shortname>`. It must be all lowercase.
items:
type: string
type: array
singular:
description: singular is the singular name of the resource. It must be all lowercase. Defaults to lowercased `kind`.
type: string
required:
- kind
- plural
type: object
validation:
description: validation describes the schema used for validation and pruning of the custom resource. If present, this validation schema is used to validate all versions. Top-level and per-version schemas are mutually exclusive.
properties:
openAPIV3Schema:
description: openAPIV3Schema is the OpenAPI v3 schema to use for validation and pruning.
type: object
type: object
version:
description: 'version is the API version of the defined custom resource. The custom resources are served under `/apis/<group>/<version>/...`. Must match the name of the first item in the `versions` list if `version` and `versions` are both specified. Optional if `versions` is specified. Deprecated: use `versions` instead.'
type: string
required:
- group
- names
type: object
defaultCompositionRef:
description: DefaultCompositionRef refers to the Composition resource that will be used in case no composition selector is given.
properties:
name:
description: Name of the referenced object.
type: string
required:
- name
type: object
enforcedCompositionRef:
description: EnforcedCompositionRef refers to the Composition resource that will be used by all composite instances whose schema is defined by this definition.
properties:
name:
description: Name of the referenced object.
type: string
required:
- name
type: object
type: object
status:
description: CompositeResourceDefinitionStatus shows the observed state of the definition.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,208 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: compositions.apiextensions.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: apiextensions.crossplane.io
names:
categories:
- crossplane
kind: Composition
listKind: CompositionList
plural: compositions
singular: composition
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: Composition defines the group of resources to be created when a compatible type is created with reference to the composition.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: CompositionSpec specifies the desired state of the definition.
properties:
compositeTypeRef:
description: CompositeTypeRef specifies the type of composite resource that this composition is compatible with.
properties:
apiVersion:
description: APIVersion of the type.
type: string
kind:
description: Kind of the type.
type: string
required:
- apiVersion
- kind
type: object
resources:
description: Resources is the list of resource templates that will be used when a composite resource referring to this composition is created.
items:
description: ComposedTemplate is used to provide information about how the composed resource should be processed.
properties:
base:
description: Base is the target resource that the patches will be applied on.
type: object
connectionDetails:
description: ConnectionDetails lists the propagation secret keys from this target resource to the composition instance connection secret.
items:
description: ConnectionDetail includes the information about the propagation of the connection information from one secret to another.
properties:
fromConnectionSecretKey:
description: FromConnectionSecretKey is the key that will be used to fetch the value from the given target resource.
type: string
name:
description: Name of the connection secret key that will be propagated to the connection secret of the composition instance. Leave empty if you'd like to use the same key name.
type: string
value:
description: Value that will be propagated to the connection secret of the composition instance. Typically you should use FromConnectionSecretKey instead, but an explicit value may be set to inject a fixed, non-sensitive connection secret values, for example a well-known port. Supercedes FromConnectionSecretKey when set.
type: string
type: object
type: array
patches:
description: Patches will be applied as overlay to the base resource.
items:
description: Patch is used to patch the field on the base resource at ToFieldPath after piping the value that is at FromFieldPath of the target resource through transformers.
properties:
fromFieldPath:
description: FromFieldPath is the path of the field on the upstream resource whose value to be used as input.
type: string
toFieldPath:
description: ToFieldPath is the path of the field on the base resource whose value will be changed with the result of transforms. Leave empty if you'd like to propagate to the same path on the target resource.
type: string
transforms:
description: Transforms are the list of functions that are used as a FIFO pipe for the input to be transformed.
items:
description: Transform is a unit of process whose input is transformed into an output with the supplied configuration.
properties:
map:
additionalProperties:
type: string
description: Map uses the input as a key in the given map and returns the value.
type: object
math:
description: Math is used to transform the input via mathematical operations such as multiplication.
properties:
multiply:
description: Multiply the value.
format: int64
type: integer
type: object
string:
description: String is used to transform the input into a string or a different kind of string. Note that the input does not necessarily need to be a string.
properties:
fmt:
description: Format the input using a Go format string. See https://golang.org/pkg/fmt/ for details.
type: string
required:
- fmt
type: object
type:
description: Type of the transform to be run.
type: string
required:
- type
type: object
type: array
required:
- fromFieldPath
type: object
type: array
readinessChecks:
description: ReadinessChecks allows users to define custom readiness checks. All checks have to return true in order for resource to be considered ready. The default readiness check is to have the "Ready" condition to be "True".
items:
description: ReadinessCheck is used to indicate how to tell whether a resource is ready for consumption
properties:
fieldPath:
description: FieldPath shows the path of the field whose value will be used.
type: string
matchInteger:
description: MatchInt is the value you'd like to match if you're using "MatchInt" type.
format: int64
type: integer
matchString:
description: MatchString is the value you'd like to match if you're using "MatchString" type.
type: string
type:
description: Type indicates the type of probe you'd like to use.
enum:
- MatchString
- MatchInteger
- NonEmpty
- None
type: string
required:
- type
type: object
type: array
required:
- base
type: object
type: array
writeConnectionSecretsToNamespace:
description: WriteConnectionSecretsToNamespace specifies the namespace in which the connection secrets of composite resource dynamically provisioned using this composition will be created.
type: string
required:
- compositeTypeRef
- resources
type: object
status:
description: CompositionStatus shows the observed state of the composition.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,68 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: providers.kubernetes.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.credentialsSecretRef.name
name: SECRET-NAME
priority: 1
type: string
group: kubernetes.crossplane.io
names:
categories:
- crossplane
kind: Provider
listKind: ProviderList
plural: providers
singular: provider
scope: Cluster
subresources: {}
validation:
openAPIV3Schema:
description: 'A Provider configures a Kubernetes ''provider'', i.e. a connection to a particular Kubernetes cluster using the referenced Secret. Deprecated: Please implement a ProviderConfig for your Kubernetes-native Provider.'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: 'A ProviderSpec defines the desired state of a Provider. Deprecated: Please implement a ProviderConfigSpec for your Kubernetes-native Provider.'
properties:
credentialsSecretRef:
description: A Secret containing connection credentials for a Kubernetes cluster client that will be used to authenticate to this Kubernetes Provider. This will typically be the connection secret of a KubernetesCluster claim, or the secret created by a Kubernetes service account, but could also be manually configured to connect to a preexisting cluster.
properties:
name:
description: Name of the secret.
type: string
namespace:
description: Namespace of the secret.
type: string
required:
- name
- namespace
type: object
required:
- credentialsSecretRef
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,156 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: configurationrevisions.pkg.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[?(@.type=='Healthy')].status
name: HEALTHY
type: string
- JSONPath: .spec.revision
name: REVISION
type: string
- JSONPath: .spec.image
name: IMAGE
type: string
- JSONPath: .spec.desiredState
name: STATE
type: string
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: pkg.crossplane.io
names:
categories:
- crossplane
kind: ConfigurationRevision
listKind: ConfigurationRevisionList
plural: configurationrevisions
singular: configurationrevision
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: A ConfigurationRevision that has been added to Crossplane.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: PackageRevisionSpec specifies the desired state of a PackageRevision.
properties:
desiredState:
description: DesiredState of the PackageRevision. Can be either Active or Inactive.
type: string
image:
description: Package image used by install Pod to extract package contents.
type: string
packagePullPolicy:
description: PackagePullPolicy defines the pull policy for the package. It is also applied to any images pulled for the package, such as a provider's controller image. Default is IfNotPresent.
type: string
packagePullSecrets:
description: PackagePullSecrets are named secrets in the same namespace that can be used to fetch packages from private registries. They are also applied to any images pulled for the package, such as a provider's controller image.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
revision:
description: Revision number. Indicates when the revision will be garbage collected based on the parent's RevisionHistoryLimit.
format: int64
type: integer
required:
- desiredState
- image
- revision
type: object
status:
description: PackageRevisionStatus represents the observed state of a PackageRevision.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
controllerRef:
description: A Reference to a named object.
properties:
name:
description: Name of the referenced object.
type: string
required:
- name
type: object
objectRefs:
description: References to objects owned by PackageRevision.
items:
description: A TypedReference refers to an object by Name, Kind, and APIVersion. It is commonly used to reference cluster-scoped objects or objects where the namespace is already known.
properties:
apiVersion:
description: APIVersion of the referenced object.
type: string
kind:
description: Kind of the referenced object.
type: string
name:
description: Name of the referenced object.
type: string
uid:
description: UID of the referenced object.
type: string
required:
- apiVersion
- kind
- name
type: object
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,122 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: configurations.pkg.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[?(@.type=='Installed')].status
name: INSTALLED
type: string
- JSONPath: .status.conditions[?(@.type=='Healthy')].status
name: HEALTHY
type: string
- JSONPath: .spec.package
name: PACKAGE
type: string
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: pkg.crossplane.io
names:
categories:
- crossplane
- pkg
kind: Configuration
listKind: ConfigurationList
plural: configurations
singular: configuration
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: Configuration is the CRD type for a request to add a configuration to Crossplane.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ConfigurationSpec specifies details about a request to install a configuration to Crossplane.
properties:
package:
description: Package is the name of the package that is being requested.
type: string
packagePullPolicy:
description: PackagePullPolicy defines the pull policy for the package. Default is IfNotPresent.
type: string
packagePullSecrets:
description: PackagePullSecrets are named secrets in the same namespace that can be used to fetch packages from private registries.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
revisionActivationPolicy:
description: RevisionActivationPolicy specifies how the package controller should update from one revision to the next. Options are Automatic or Manual. Default is Automatic.
type: string
revisionHistoryLimit:
description: RevisionHistoryLimit dictates how the package controller cleans up old inactive package revisions. Defaults to 1. Can be disabled by explicitly setting to 0.
format: int64
type: integer
required:
- package
type: object
status:
description: ConfigurationStatus represents the observed state of a Configuration.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
currentRevision:
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,156 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: providerrevisions.pkg.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[?(@.type=='Healthy')].status
name: HEALTHY
type: string
- JSONPath: .spec.revision
name: REVISION
type: string
- JSONPath: .spec.image
name: IMAGE
type: string
- JSONPath: .spec.desiredState
name: STATE
type: string
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: pkg.crossplane.io
names:
categories:
- crossplane
kind: ProviderRevision
listKind: ProviderRevisionList
plural: providerrevisions
singular: providerrevision
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: A ProviderRevision that has been added to Crossplane.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: PackageRevisionSpec specifies the desired state of a PackageRevision.
properties:
desiredState:
description: DesiredState of the PackageRevision. Can be either Active or Inactive.
type: string
image:
description: Package image used by install Pod to extract package contents.
type: string
packagePullPolicy:
description: PackagePullPolicy defines the pull policy for the package. It is also applied to any images pulled for the package, such as a provider's controller image. Default is IfNotPresent.
type: string
packagePullSecrets:
description: PackagePullSecrets are named secrets in the same namespace that can be used to fetch packages from private registries. They are also applied to any images pulled for the package, such as a provider's controller image.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
revision:
description: Revision number. Indicates when the revision will be garbage collected based on the parent's RevisionHistoryLimit.
format: int64
type: integer
required:
- desiredState
- image
- revision
type: object
status:
description: PackageRevisionStatus represents the observed state of a PackageRevision.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
controllerRef:
description: A Reference to a named object.
properties:
name:
description: Name of the referenced object.
type: string
required:
- name
type: object
objectRefs:
description: References to objects owned by PackageRevision.
items:
description: A TypedReference refers to an object by Name, Kind, and APIVersion. It is commonly used to reference cluster-scoped objects or objects where the namespace is already known.
properties:
apiVersion:
description: APIVersion of the referenced object.
type: string
kind:
description: Kind of the referenced object.
type: string
name:
description: Name of the referenced object.
type: string
uid:
description: UID of the referenced object.
type: string
required:
- apiVersion
- kind
- name
type: object
type: array
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,122 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: providers.pkg.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .status.conditions[?(@.type=='Installed')].status
name: INSTALLED
type: string
- JSONPath: .status.conditions[?(@.type=='Healthy')].status
name: HEALTHY
type: string
- JSONPath: .spec.package
name: PACKAGE
type: string
- JSONPath: .metadata.creationTimestamp
name: AGE
type: date
group: pkg.crossplane.io
names:
categories:
- crossplane
- pkg
kind: Provider
listKind: ProviderList
plural: providers
singular: provider
scope: Cluster
subresources:
status: {}
validation:
openAPIV3Schema:
description: Provider is the CRD type for a request to add a provider to Crossplane.
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: ProviderSpec specifies details about a request to install a provider to Crossplane.
properties:
package:
description: Package is the name of the package that is being requested.
type: string
packagePullPolicy:
description: PackagePullPolicy defines the pull policy for the package. Default is IfNotPresent.
type: string
packagePullSecrets:
description: PackagePullSecrets are named secrets in the same namespace that can be used to fetch packages from private registries.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
revisionActivationPolicy:
description: RevisionActivationPolicy specifies how the package controller should update from one revision to the next. Options are Automatic or Manual. Default is Automatic.
type: string
revisionHistoryLimit:
description: RevisionHistoryLimit dictates how the package controller cleans up old inactive package revisions. Defaults to 1. Can be disabled by explicitly setting to 0.
format: int64
type: integer
required:
- package
type: object
status:
description: ProviderStatus represents the observed state of a Provider.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
currentRevision:
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,133 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: kubernetesapplicationresources.workload.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.template.kind
name: TEMPLATE-KIND
type: string
- JSONPath: .spec.template.metadata.name
name: TEMPLATE-NAME
type: string
- JSONPath: .spec.targetRef.name
name: CLUSTER
type: string
- JSONPath: .status.state
name: STATUS
type: string
group: workload.crossplane.io
names:
categories:
- crossplane
kind: KubernetesApplicationResource
listKind: KubernetesApplicationResourceList
plural: kubernetesapplicationresources
singular: kubernetesapplicationresource
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: 'A KubernetesApplicationResource is a resource of a Kubernetes application. Each resource templates a single Kubernetes resource to be deployed to its scheduled KubernetesCluster. Deprecated: See // Deprecated: See https://github.com/crossplane/crossplane/issues/1595'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: KubernetesApplicationResourceSpec specifies the desired state of a KubernetesApplicationResource.
properties:
secrets:
description: Secrets upon which this application resource depends. These secrets will be propagated to the Kubernetes cluster to which this application is scheduled.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
targetRef:
description: Target to which this application has been scheduled.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
required:
- name
type: object
template:
description: A Template for a Kubernetes resource to be submitted to the KubernetesCluster to which this application resource is scheduled. The resource must be understood by the KubernetesCluster. Crossplane requires only that the resource contains standard Kubernetes type and object metadata.
type: object
required:
- template
type: object
status:
description: KubernetesApplicationResourceStatus represents the observed state of a KubernetesApplicationResource.
properties:
conditionedStatus:
description: A ConditionedStatus reflects the observed status of a resource. Only one condition of each type may exist.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
type: object
remote:
description: Remote status of the resource templated by this application resource.
properties:
raw:
description: Raw JSON representation of the remote status as a byte array.
format: byte
type: string
type: object
state:
description: State of the application.
type: string
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,216 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: kubernetesapplications.workload.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.targetRef.name
name: CLUSTER
type: string
- JSONPath: .status.state
name: STATUS
type: string
- JSONPath: .status.desiredResources
name: DESIRED
type: integer
- JSONPath: .status.submittedResources
name: SUBMITTED
type: integer
group: workload.crossplane.io
names:
categories:
- crossplane
kind: KubernetesApplication
listKind: KubernetesApplicationList
plural: kubernetesapplications
singular: kubernetesapplication
scope: Namespaced
subresources:
status: {}
validation:
openAPIV3Schema:
description: 'A KubernetesApplication defines an application deployed by Crossplane to a Kubernetes cluster, i.e. a portable KubernetesCluster resource claim. Deprecated: See https://github.com/crossplane/crossplane/issues/1595'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: A KubernetesApplicationSpec specifies the resources of a Kubernetes application.
properties:
resourceSelector:
description: ResourceSelector selects the KubernetesApplicationResources that are managed by this KubernetesApplication. Note that a KubernetesApplication will never adopt orphaned KubernetesApplicationResources, and thus this selector serves only to help match a KubernetesApplication to its KubernetesApplicationResources.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
resourceTemplates:
description: ResourceTemplates specifies a set of Kubernetes application resources managed by this application.
items:
description: A KubernetesApplicationResourceTemplate is used to instantiate new KubernetesApplicationResources.
properties:
metadata:
type: object
spec:
description: KubernetesApplicationResourceSpec specifies the desired state of a KubernetesApplicationResource.
properties:
secrets:
description: Secrets upon which this application resource depends. These secrets will be propagated to the Kubernetes cluster to which this application is scheduled.
items:
description: LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?'
type: string
type: object
type: array
targetRef:
description: Target to which this application has been scheduled.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
required:
- name
type: object
template:
description: A Template for a Kubernetes resource to be submitted to the KubernetesCluster to which this application resource is scheduled. The resource must be understood by the KubernetesCluster. Crossplane requires only that the resource contains standard Kubernetes type and object metadata.
type: object
required:
- template
type: object
type: object
type: array
targetRef:
description: Target to which this application has been scheduled.
properties:
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
required:
- name
type: object
targetSelector:
description: TargetSelector selects the targets to which this application may be scheduled. Leave both match labels and expressions empty to match any target.
properties:
matchExpressions:
description: matchExpressions is a list of label selector requirements. The requirements are ANDed.
items:
description: A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.
properties:
key:
description: key is the label key that the selector applies to.
type: string
operator:
description: operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.
type: string
values:
description: values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed.
type: object
type: object
required:
- resourceSelector
- resourceTemplates
type: object
status:
description: KubernetesApplicationStatus represents the observed state of a KubernetesApplication.
properties:
conditionedStatus:
description: A ConditionedStatus reflects the observed status of a resource. Only one condition of each type may exist.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
type: object
desiredResources:
description: Desired resources of this application, i.e. the number of resources that match this application's resource selector.
type: integer
state:
description: State of the application.
type: string
submittedResources:
description: Submitted resources of this workload, i.e. the subset of desired resources that have been successfully submitted to their scheduled Kubernetes cluster.
type: integer
type: object
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,120 +0,0 @@
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.2.4
creationTimestamp: null
name: kubernetestargets.workload.crossplane.io
spec:
additionalPrinterColumns:
- JSONPath: .spec.clusterRef.name
name: CLUSTER
type: string
group: workload.crossplane.io
names:
categories:
- crossplane
kind: KubernetesTarget
listKind: KubernetesTargetList
plural: kubernetestargets
singular: kubernetestarget
scope: Namespaced
subresources: {}
validation:
openAPIV3Schema:
description: 'A KubernetesTarget is a scheduling target for a Kubernetes Application. Deprecated: See https://github.com/crossplane/crossplane/issues/1595'
properties:
apiVersion:
description: 'APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
type: string
kind:
description: 'Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
metadata:
type: object
spec:
description: A TargetSpec defines the common fields of objects used for exposing infrastructure to workloads that can be scheduled to.
properties:
clusterRef:
description: A ResourceReference specifies an existing managed resource, in any namespace, which this target should attempt to propagate a connection secret from.
properties:
apiVersion:
description: API version of the referent.
type: string
fieldPath:
description: 'If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.'
type: string
kind:
description: 'Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
type: string
name:
description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
type: string
namespace:
description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
type: string
resourceVersion:
description: 'Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency'
type: string
uid:
description: 'UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids'
type: string
type: object
connectionSecretRef:
description: WriteConnectionSecretToReference specifies the name of a Secret, in the same namespace as this target, to which any connection details for this target should be written or already exist. Connection secrets referenced by a target should contain information for connecting to a resource that allows for scheduling of workloads.
properties:
name:
description: Name of the secret.
type: string
required:
- name
type: object
type: object
status:
description: A TargetStatus defines the observed status a target.
properties:
conditions:
description: Conditions of the resource.
items:
description: A Condition that may apply to a resource.
properties:
lastTransitionTime:
description: LastTransitionTime is the last time this condition transitioned from one status to another.
format: date-time
type: string
message:
description: A Message containing details about this condition's last transition from one status to another, if any.
type: string
reason:
description: A Reason for this condition's last transition from one status to another.
type: string
status:
description: Status of this condition; is it currently True, False, or Unknown?
type: string
type:
description: Type of this condition. At most one of each condition type may apply to a resource at any point in time.
type: string
required:
- lastTransitionTime
- reason
- status
- type
type: object
type: array
type: object
required:
- spec
type: object
version: v1alpha1
versions:
- name: v1alpha1
served: true
storage: true
status:
acceptedNames:
kind: ""
plural: ""
conditions: []
storedVersions: []
@@ -1,6 +0,0 @@
dependencies:
- name: oam-kubernetes-runtime
repository: https://charts.crossplane.io/alpha
version: 0.2.2
digest: sha256:c719dbcb1845241851f2b55ada9975b862885c1cecd5bae19e6b5339291fc81b
generated: "2020-10-10T01:47:45.31055709Z"
@@ -1 +0,0 @@
dependencies:
@@ -1,8 +0,0 @@
Release: {{.Release.Name}}
Chart Name: {{.Chart.Name}}
Chart Description: {{.Chart.Description}}
Chart Version: {{.Chart.Version}}
Chart Application Version: {{.Chart.AppVersion}}
Kube Version: {{.Capabilities.KubeVersion}}
@@ -1,14 +0,0 @@
{{/* vim: set filetype=mustache: */}}
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
{{- end -}}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
@@ -1,81 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.crossplane.io/aggregate-to-crossplane: "true"
rules: []
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:system:aggregate-to-crossplane
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
crossplane.io/scope: "system"
rbac.crossplane.io/aggregate-to-crossplane: "true"
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- update
- patch
- delete
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- "*"
- apiGroups:
- ""
resources:
- secrets
verbs:
- get
- list
- watch
- create
- update
- patch
- apiGroups:
- ""
resources:
- serviceaccounts
verbs:
- "*"
- apiGroups:
- kubernetes.crossplane.io
- workload.crossplane.io
- apiextensions.crossplane.io
- pkg.crossplane.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- extensions
- apps
resources:
- deployments
verbs:
- get
- list
- create
- update
- patch
- delete
- watch
@@ -1,17 +0,0 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "name" . }}
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "name" . }}
subjects:
- kind: ServiceAccount
name: {{ template "name" . }}
namespace: {{ .Release.Namespace }}
@@ -1,63 +0,0 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "name" . }}
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ template "name" . }}
release: {{ .Release.Name }}
strategy:
type: {{ .Values.deploymentStrategy }}
template:
metadata:
labels:
app: {{ template "name" . }}
release: {{ .Release.Name }}
spec:
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
serviceAccountName: {{ template "name" . }}
containers:
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
{{- if .Values.args }}
args:
{{- range $arg := .Values.args }}
- {{ $arg }}
{{- end }}
{{- end }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
name: {{ .Chart.Name }}
resources:
{{- toYaml .Values.resourcesCrossplane | nindent 12 }}
securityContext:
runAsUser: 2000
runAsGroup: 2000
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
env:
- name: POD_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
volumeMounts:
- mountPath: /cache
name: package-cache
volumes:
- name: package-cache
{{- if .Values.packageCache.pvc }}
persistentVolumeClaim:
claimName: {{ .Values.packageCache.pvc }}
{{- else }}
emptyDir:
medium: {{ .Values.packageCache.medium }}
sizeLimit: {{ .Values.packageCache.sizeLimit }}
{{- end }}
@@ -1,11 +0,0 @@
{{- range $.Values.provider.packages }}
{{ if ne . "" }}
apiVersion: pkg.crossplane.io/v1alpha1
kind: Provider
metadata:
name: {{ . | trim | replace "/" "-" | replace ":" "-" }}
spec:
package: {{ . | trim }}
---
{{ end }}
{{- end }}
@@ -1,80 +0,0 @@
{{- if .Values.rbacManager.deploy }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}-rbac-manager
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
- apiGroups:
- ""
resources:
- events
verbs:
- create
- update
- patch
- delete
- apiGroups:
- ""
resources:
- namespaces
- serviceaccounts
verbs:
- get
- list
- watch
- apiGroups:
- apiextensions.crossplane.io
resources:
- compositeresourcedefinitions
verbs:
- get
- list
- watch
- apiGroups:
- pkg.crossplane.io
resources:
- providerrevisions
verbs:
- get
- list
- watch
- apiGroups:
- apiextensions.k8s.io
resources:
- customresourcedefinitions
verbs:
- get
- list
- watch
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterroles
- roles
verbs:
- get
- list
- watch
- create
- update
- patch
# The RBAC manager may grant access it does not have.
- escalate
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterroles
verbs:
- bind
- apiGroups:
- rbac.authorization.k8s.io
resources:
- clusterrolebindings
verbs:
- "*"
{{- end}}
@@ -1,19 +0,0 @@
{{- if .Values.rbacManager.deploy }}
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "name" . }}-rbac-manager
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "name" . }}-rbac-manager
subjects:
- kind: ServiceAccount
name: rbac-manager
namespace: {{ .Release.Namespace }}
{{- end}}
@@ -1,46 +0,0 @@
{{- if .Values.rbacManager.deploy }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ template "name" . }}-rbac-manager
labels:
app: {{ template "name" . }}-rbac-manager
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
spec:
replicas: {{ .Values.replicas }}
selector:
matchLabels:
app: {{ template "name" . }}-rbac-manager
release: {{ .Release.Name }}
strategy:
type: {{ .Values.deploymentStrategy }}
template:
metadata:
labels:
app: {{ template "name" . }}-rbac-manager
release: {{ .Release.Name }}
spec:
{{- if .Values.priorityClassName }}
priorityClassName: {{ .Values.priorityClassName | quote }}
{{- end }}
serviceAccountName: rbac-manager
containers:
- image: {{ .Values.image.repository }}:{{ .Values.image.tag }}
args:
- rbac
{{- if .Values.rbacManager.managementPolicy }}
- --manage={{ .Values.rbacManager.managementPolicy }}
{{- end }}
{{- range $arg := .Values.rbacManager.args }}
- {{ $arg }}
{{- end }}
imagePullPolicy: {{ .Values.image.pullPolicy }}
name: {{ .Chart.Name }}
resources:
{{- toYaml .Values.resourcesRBACManager | nindent 12 }}
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
{{- end}}
@@ -1,267 +0,0 @@
{{- if .Values.rbacManager.deploy }}
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: {{ template "name" . }}-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: {{ template "name" . }}-admin
subjects:
- apiGroup: rbac.authorization.k8s.io
kind: Group
name: {{ template "name" . }}:masters
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}-admin
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.crossplane.io/aggregate-to-admin: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}-edit
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.crossplane.io/aggregate-to-edit: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}-view
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.crossplane.io/aggregate-to-view: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}-browse
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
aggregationRule:
clusterRoleSelectors:
- matchLabels:
rbac.crossplane.io/aggregate-to-browse: "true"
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-admin
labels:
rbac.crossplane.io/aggregate-to-admin: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane administrators have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane administrators must create provider credential secrets, and may
# need to read or otherwise interact with connection secrets. They may also need
# to create or annotate namespaces.
- apiGroups: [""]
resources: [secrets, namespaces]
verbs: ["*"]
# Crossplane administrators have access to view the roles that they may be able
# to grant to other subjects.
- apiGroups: [rbac.authorization.k8s.io]
resources: [clusterroles, roles]
verbs: [get, list, watch]
# Crossplane administrators have access to grant the access they have to other
# subjects.
- apiGroups: [rbac.authorization.k8s.io]
resources: [clusterrolebindings, rolebindings]
verbs: ["*"]
# Crossplane administrators have full access to built in Crossplane types.
- apiGroups:
- apiextensions.crossplane.io
- pkg.crossplane.io
resources: ["*"]
verbs: ["*"]
# Crossplane administrators have access to view CRDs in order to debug XRDs.
- apiGroups: [apiextensions.k8s.io]
resources: [customresourcedefinitions]
verbs: [get, list, watch]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-edit
labels:
rbac.crossplane.io/aggregate-to-edit: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane editors have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane editors must create provider credential secrets, and may need to
# read or otherwise interact with connection secrets.
- apiGroups: [""]
resources: [secrets]
verbs: ["*"]
# Crossplane editors may see which namespaces exist, but not edit them.
- apiGroups: [""]
resources: [namespaces]
verbs: [get, list, watch]
# Crossplane editors have full access to built in Crossplane types.
- apiGroups:
- apiextensions.crossplane.io
- pkg.crossplane.io
resources: ["*"]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-view
labels:
rbac.crossplane.io/aggregate-to-view: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane viewers have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane viewers may see which namespaces exist.
- apiGroups: [""]
resources: [namespaces]
verbs: [get, list, watch]
# Crossplane viewers have read-only access to built in Crossplane types.
- apiGroups:
- apiextensions.crossplane.io
- pkg.crossplane.io
resources: ["*"]
verbs: [get, list, watch]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-browse
labels:
rbac.crossplane.io/aggregate-to-browse: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane browsers have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane browsers have read-only access to compositions and XRDs. This
# allows them to discover and select an appropriate composition when creating a
# resource claim.
- apiGroups:
- apiextensions.crossplane.io
resources: ["*"]
verbs: [get, list, watch]
{{- if .Values.rbacManager.managementPolicy }}
# The below ClusterRoles are aggregated to the namespaced RBAC roles created by
# the Crossplane RBAC manager when it is running in --manage=All mode.
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-ns-admin
labels:
rbac.crossplane.io/aggregate-to-ns-admin: "true"
rbac.crossplane.io/base-of-ns-admin: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane namespace admins have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane namespace admins may need to read or otherwise interact with
# resource claim connection secrets.
- apiGroups: [""]
resources: [secrets]
verbs: ["*"]
# Crossplane namespace admins have access to view the roles that they may be
# able to grant to other subjects.
- apiGroups: [rbac.authorization.k8s.io]
resources: [roles]
verbs: [get, list, watch]
# Crossplane namespace admins have access to grant the access they have to other
# subjects.
- apiGroups: [rbac.authorization.k8s.io]
resources: [rolebindings]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-ns-edit
labels:
rbac.crossplane.io/aggregate-to-ns-edit: "true"
rbac.crossplane.io/base-of-ns-edit: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane namespace editors have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
# Crossplane namespace editors may need to read or otherwise interact with
# resource claim connection secrets.
- apiGroups: [""]
resources: [secrets]
verbs: ["*"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: {{ template "name" . }}:aggregate-to-ns-view
labels:
rbac.crossplane.io/aggregate-to-ns-view: "true"
rbac.crossplane.io/base-of-ns-view: "true"
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
rules:
# Crossplane namespace viewers have access to view events.
- apiGroups: [""]
resources: [events]
verbs: [get, list, watch]
{{- end}}
{{- end}}
@@ -1,11 +0,0 @@
{{- if .Values.rbacManager.deploy }}
apiVersion: v1
kind: ServiceAccount
metadata:
name: rbac-manager
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- end}}
@@ -1,15 +0,0 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ template "name" . }}
labels:
app: {{ template "name" . }}
chart: {{ template "chart" . }}
release: {{ .Release.Name }}
heritage: {{ .Release.Service }}
{{- if .Values.imagePullSecrets }}
imagePullSecrets:
{{- range $index, $secret := .Values.imagePullSecrets }}
- name: {{ $secret }}
{{- end }}
{{ end }}
@@ -1,48 +0,0 @@
replicas: 1
deploymentStrategy: RollingUpdate
image:
repository: crossplane/crossplane
tag: v0.13.0
pullPolicy: Always
args: {}
provider:
packages: []
imagePullSecrets:
- dockerhub
rbacManager:
deploy: true
managementPolicy: All
args: {}
priorityClassName: ""
resourcesCrossplane:
limits:
cpu: 100m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
packageCache:
medium: ""
sizeLimit: 5Mi
pvc: ""
resourcesRBACManager:
limits:
cpu: 100m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
alpha:
oam:
enabled: false
@@ -1,48 +0,0 @@
replicas: 1
deploymentStrategy: RollingUpdate
image:
repository: crossplane/crossplane
tag: %%VERSION%%
pullPolicy: Always
args: {}
provider:
packages: []
imagePullSecrets:
- dockerhub
rbacManager:
deploy: true
managementPolicy: All
args: {}
priorityClassName: ""
resourcesCrossplane:
limits:
cpu: 100m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
packageCache:
medium: ""
sizeLimit: 5Mi
pvc: ""
resourcesRBACManager:
limits:
cpu: 100m
memory: 512Mi
requests:
cpu: 100m
memory: 256Mi
alpha:
oam:
enabled: false
-35
View File
@@ -1,35 +0,0 @@
apiVersion: core.oam.dev/v1alpha2
kind: WorkloadDefinition
metadata:
name: rds
annotations:
definition.oam.dev/apiVersion: "database.example.org/v1alpha1"
definition.oam.dev/kind: "PostgreSQLInstance"
definition.oam.dev/description: "RDS on Ali Cloud"
spec:
definitionRef:
name: rds.apps
extension:
template: |
output: {
apiVersion: "database.example.org/v1alpha1"
kind: "PostgreSQLInstance"
metadata:
name: context.name
spec: {
parameters:
storageGB: 20
compositionSelector: {
matchLabels:
provider: parameter.provider
}
writeConnectionSecretToRef:
name: parameter.secretname
}
}
parameter: {
secretname: *"db-conn" | string
provider: *"alibaba" | string
}
-14
View File
@@ -1,14 +0,0 @@
apiVersion: alibaba.crossplane.io/v1alpha1
kind: ProviderConfig
metadata:
name: default
spec:
region: us-west-1
credentials:
source: Secret
secretRef:
namespace: crossplane-system
name: alibaba-creds
key: credentials
@@ -1,54 +0,0 @@
apiVersion: core.oam.dev/v1alpha2
kind: WorkloadDefinition
metadata:
name: webservice
annotations:
definition.oam.dev/apiVersion: "standard.oam.dev/v1alpha1"
definition.oam.dev/kind: "PodSpecWorkload"
definition.oam.dev/description: "Flight tracker web ui"
spec:
definitionRef:
name: podspecworkloads.standard.oam.dev
childResourceKinds:
- apiVersion: apps/v1
kind: Deployment
- apiVersion: v1
kind: Service
extension:
template: |
output: {
apiVersion: "standard.oam.dev/v1alpha1"
kind: "PodSpecWorkload"
metadata: name: parameter.name
spec: {
replicas: 1
podSpec: {
containers: [{
image: parameter.image
name: parameter.name
env: parameter.env
ports: [{
containerPort: parameter.port
protocol: "TCP"
}]
}]
}
}
}
#webservice: {
name: string
image: string
port: int
env: [...{
name: string
value?: string
valueFrom?: {
secretKeyRef: {
name: string
key: string
}
}
}]
}
parameter: #webservice
-79
View File
@@ -1,79 +0,0 @@
name: lab3
services:
database:
type: rds
name: alibabaRds
data-api:
type: webservice
image: artursouza/rudr-data-api:0.50
name: data-api
port: 3009
env:
- name: DATABASE_NAME
value: postgres
- name: DATABASE_DRIVER
value: postgresql
- name: DATABASE_HOSTNAME
valueFrom:
secretKeyRef:
name: db-conn
key: endpoint
- name: DATABASE_USER
valueFrom:
secretKeyRef:
name: db-conn
key: username
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: db-conn
key: password
- name: DATABASE_PORT
value: "1921"
flights-api:
type: webservice
image: sonofjorel/rudr-flights-api:0.49
name: flights-api
port: 3003
env:
- name: DATA_SERVICE_URI
value: http://data-api.default.svc.cluster.local:8080/
quakes-api:
type: webservice
image: sonofjorel/rudr-quakes-api:0.49
name: quakes-api
port: 3012
env:
- name: DATA_SERVICE_URI
value: http://data-api.default.svc.cluster.local:8080/
weather-api:
type: webservice
image: sonofjorel/rudr-weather-api:0.49
name: weather-api
port: 3015
env:
- name: DATA_SERVICE_URI
value: http://data-api.default.svc.cluster.local:8080/
web-ui:
type: webservice
image: sonofjorel/rudr-web-ui:0.49
name: web-ui
port: 8080
route:
domain: kubevela.kubecon.demo
env:
- name: FLIGHT_API_ROOT
value: http://flights-api.default.svc.cluster.local:8080/
- name: WEATHER_API_ROOT
value: http://weather-api.default.svc.cluster.local:8080/
- name: QUAKES_API_ROOT
value: http://quakes-api.default.svc.cluster.local:8080/
-2
View File
@@ -1,2 +0,0 @@
node_modules
npm-debug.log
-14
View File
@@ -1,14 +0,0 @@
FROM mhart/alpine-node:12
WORKDIR /app
COPY package.json ./
RUN npm install
RUN npm ci --prod
# Then we copy over the modules from above onto a `slim` image
FROM mhart/alpine-node:slim-12
WORKDIR /app
COPY --from=0 /app .
COPY . .
CMD ["node", "server.js"]
-13
View File
@@ -1,13 +0,0 @@
{
"name": "docker_web_app",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "First Last <first.last@example.com>",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.16.1"
}
}
-27
View File
@@ -1,27 +0,0 @@
'use strict';
const express = require('express');
// const promMid = require('express-prometheus-middleware');
// Constants
const PORT = 8080;
const HOST = '0.0.0.0';
// App
const app = express();
app.get('/', (req, res) => {
res.send('Hello World');
});
// expose metrics:
// - https://www.npmjs.com/package/express-prometheus-middleware
// - https://medium.com/teamzerolabs/node-js-monitoring-with-prometheus-grafana-3056362ccb80
// app.use(promMid({
// metricsPath: '/metrics',
// collectDefaultMetrics: true,
// requestDurationBuckets: [0.1, 0.5, 1, 1.5],
// }));
app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);
-51
View File
@@ -1,51 +0,0 @@
name: testapp
services:
express-server:
# this image will be used in both build and deploy steps
image: oamdev/testapp:v1
build:
# Here more runtime specific build templates will be supported, like NodeJS, Go, Python, Ruby.
docker:
file: Dockerfile
context: .
# Uncomment the following to push to local kind cluster
# push:
# local: kind
# type: webservice (default) | worker | task
cmd: ["node", "server.js"]
port: 8080
# scaler:
# replica: 1
# route:
# domain: example.com
# rules:
# - path: /testapp
# rewriteTarget: /
# metrics:
# format: "prometheus"
# port: 8080
# path: "/metrics"
# scheme: "http"
# enabled: true
# autoscale:
# min: 1
# max: 4
# cron:
# startAt: "14:00"
# duration: "2h"
# days: "Monday, Thursday"
# replicas: "2"
# timezone: "America/Seattle"
# pi:
# image: perl
# cmd: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]