From 4e05394b8692838fe09fe6317b35eef27ffbbede Mon Sep 17 00:00:00 2001 From: Michelle Au Date: Thu, 13 Jul 2017 11:52:05 -0700 Subject: [PATCH 01/27] Add note about local PV delete limitation --- docs/concepts/storage/volumes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/concepts/storage/volumes.md b/docs/concepts/storage/volumes.md index 2e96283c01e88..27116978e37ee 100644 --- a/docs/concepts/storage/volumes.md +++ b/docs/concepts/storage/volumes.md @@ -785,6 +785,9 @@ spec: path: /mnt/disks/ssd1 ``` +Note that local PersistentVolume cleanup and deletion requires manual +intervention without the external provisioner. + For details on the `local` volume type, see the [Local Persistent Storage user guide](https://github.com/kubernetes-incubator/external-storage/tree/master/local-volume) From e7e2a37d03d21383c9a9bb7ff42b354cd8ba4169 Mon Sep 17 00:00:00 2001 From: Kathryn Alexander Date: Tue, 11 Jul 2017 08:02:46 -0400 Subject: [PATCH 02/27] Correcting typo in name --- docs/setup/pick-right-solution.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/setup/pick-right-solution.md b/docs/setup/pick-right-solution.md index c4947a2079b52..2e7d66a856086 100644 --- a/docs/setup/pick-right-solution.md +++ b/docs/setup/pick-right-solution.md @@ -34,7 +34,7 @@ a Kubernetes cluster from scratch. * [Ubuntu on LXD](/docs/getting-started-guides/ubuntu/local) supports a nine-instance deployment on localhost. -* [IBM Cloud local-ce (Community Edition)](https://www.ibm.com/support/knowledgecenter/en/SSBS6K/product_welcome_cloud_private.html) can use VirtualBox on your machine to deploy Kubernetes to one or more VMs for dev and test scenarios. Scales to full multi-node cluster. Free version of the enterprise solution. +* [IBM Cloud private-ce (Community Edition)](https://www.ibm.com/support/knowledgecenter/en/SSBS6K/product_welcome_cloud_private.html) can use VirtualBox on your machine to deploy Kubernetes to one or more VMs for dev and test scenarios. Scales to full multi-node cluster. Free version of the enterprise solution. # Hosted Solutions From 7adbe501e7281f655731fee8160cff611376f3de Mon Sep 17 00:00:00 2001 From: Jay Oster Date: Fri, 14 Jul 2017 11:42:30 -0700 Subject: [PATCH 03/27] Fix a typo (#4325) * Fix a typo * Fix grammatical error --- docs/concepts/workloads/pods/disruptions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/workloads/pods/disruptions.md b/docs/concepts/workloads/pods/disruptions.md index 83bfef56c3f17..79aa38bb9f2d8 100644 --- a/docs/concepts/workloads/pods/disruptions.md +++ b/docs/concepts/workloads/pods/disruptions.md @@ -244,7 +244,7 @@ interface between the roles. If you do not have such a separation of responsibilities in your organization, you may not need to use Pod Disruption Budgets. -## How to perform Distruptive Actions your Cluster +## How to perform Disruptive Actions on your Cluster If you are a Cluster Administrator, and you need to perform a disruptive action on all the nodes in your cluster, such as a node or system software upgrade, here are some options: From a0607d1bf0fe7d8e5cab1afd21f413f1a3506e69 Mon Sep 17 00:00:00 2001 From: Mike Bryant Date: Thu, 13 Jul 2017 19:40:07 +0100 Subject: [PATCH 04/27] Fix typo in NetworkPolicy example The given example results in: ``` The NetworkPolicy "test-network-policy" is invalid: spec.ingress[0].ports[0].protocol: Unsupported value: "tcp": supported values: TCP, UDP ``` --- docs/concepts/services-networking/network-policies.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/services-networking/network-policies.md b/docs/concepts/services-networking/network-policies.md index ea235dd82876c..b57c04a7d0c23 100644 --- a/docs/concepts/services-networking/network-policies.md +++ b/docs/concepts/services-networking/network-policies.md @@ -51,7 +51,7 @@ spec: matchLabels: role: frontend ports: - - protocol: tcp + - protocol: TCP port: 6379 ``` From 99ed8cc5c0d08dc58b2acfe2217fad10ed658127 Mon Sep 17 00:00:00 2001 From: xiaoy Date: Sat, 15 Jul 2017 02:43:54 +0800 Subject: [PATCH 05/27] fix command and try cla again (#4255) * fix command and try cla again * fix command --- docs/concepts/workloads/controllers/deployment.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/concepts/workloads/controllers/deployment.md b/docs/concepts/workloads/controllers/deployment.md index b70894cd6f046..c4ad4ecb7733c 100644 --- a/docs/concepts/workloads/controllers/deployment.md +++ b/docs/concepts/workloads/controllers/deployment.md @@ -526,13 +526,13 @@ deployment "nginx-deployment" paused Then update the image of the Deployment: ```shell -$ kubectl set image deploy/nginx nginx=nginx:1.9.1 +$ kubectl set image deploy/nginx-deployment nginx=nginx:1.9.1 deployment "nginx-deployment" image updated ``` Notice that no new rollout started: ```shell -$ kubectl rollout history deploy/nginx +$ kubectl rollout history deploy/nginx-deployment deployments "nginx" REVISION CHANGE-CAUSE 1 @@ -553,7 +553,7 @@ the Deployment will not have any effect as long as the Deployment is paused. Eventually, resume the Deployment and observe a new ReplicaSet coming up with all the new updates: ```shell -$ kubectl rollout resume deploy nginx +$ kubectl rollout resume deploy/nginx-deployment deployment "nginx" resumed $ kubectl get rs -w NAME DESIRED CURRENT READY AGE @@ -609,7 +609,7 @@ You can check if a Deployment has completed by using `kubectl rollout status`. I successfully, `kubectl rollout status` returns a zero exit code. ```shell -$ kubectl rollout status deploy/nginx +$ kubectl rollout status deploy/nginx-deployment Waiting for rollout to finish: 2 of 3 updated replicas are available... deployment "nginx" successfully rolled out $ echo $? @@ -738,7 +738,7 @@ You can check if a Deployment has failed to progress by using `kubectl rollout s returns a non-zero exit code if the Deployment has exceeded the progression deadline. ```shell -$ kubectl rollout status deploy/nginx +$ kubectl rollout status deploy/nginx-deployment Waiting for rollout to finish: 2 out of 3 new replicas have been updated... error: deployment "nginx" exceeded its progress deadline $ echo $? From dbeade20c028370a18b750076f516473b02410cd Mon Sep 17 00:00:00 2001 From: Clenimar Filemon Date: Fri, 14 Jul 2017 20:44:43 +0200 Subject: [PATCH 06/27] Fix gcloud docker push command (#4058) Use `gcloud docker -- push` instead of `gcloud docker push`. --- docs/tasks/job/coarse-parallel-processing-work-queue/index.md | 2 +- docs/tasks/job/fine-parallel-processing-work-queue/index.md | 2 +- docs/user-guide/liveness/image/Makefile | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/tasks/job/coarse-parallel-processing-work-queue/index.md b/docs/tasks/job/coarse-parallel-processing-work-queue/index.md index 8c81e376288da..76694f21a7099 100644 --- a/docs/tasks/job/coarse-parallel-processing-work-queue/index.md +++ b/docs/tasks/job/coarse-parallel-processing-work-queue/index.md @@ -199,7 +199,7 @@ your app image with your project ID, and push to GCR. Replace ```shell docker tag job-wq-1 gcr.io//job-wq-1 -gcloud docker push gcr.io//job-wq-1 +gcloud docker -- push gcr.io//job-wq-1 ``` ## Defining a Job diff --git a/docs/tasks/job/fine-parallel-processing-work-queue/index.md b/docs/tasks/job/fine-parallel-processing-work-queue/index.md index 9e4c3200e996f..dd8c2ac8b98d9 100644 --- a/docs/tasks/job/fine-parallel-processing-work-queue/index.md +++ b/docs/tasks/job/fine-parallel-processing-work-queue/index.md @@ -146,7 +146,7 @@ your app image with your project ID, and push to GCR. Replace ```shell docker tag job-wq-2 gcr.io//job-wq-2 -gcloud docker push gcr.io//job-wq-2 +gcloud docker -- push gcr.io//job-wq-2 ``` ## Defining a Job diff --git a/docs/user-guide/liveness/image/Makefile b/docs/user-guide/liveness/image/Makefile index f29214f350123..b1a708dc14781 100644 --- a/docs/user-guide/liveness/image/Makefile +++ b/docs/user-guide/liveness/image/Makefile @@ -21,7 +21,7 @@ container: server docker build -t gcr.io/google_containers/liveness . push: container - gcloud docker push gcr.io/google_containers/liveness + gcloud docker -- push gcr.io/google_containers/liveness clean: rm -f server From 5827f5177967f0ecba65610f51bd17736ca8a646 Mon Sep 17 00:00:00 2001 From: ymqytw Date: Tue, 11 Jul 2017 13:24:57 -0700 Subject: [PATCH 07/27] sync imported docs --- docs/admin/federation-apiserver.md | 41 +- docs/admin/federation-controller-manager.md | 3 +- docs/admin/kube-apiserver.md | 48 +- docs/admin/kube-controller-manager.md | 23 +- docs/admin/kube-proxy.md | 21 +- docs/admin/kube-scheduler.md | 49 +- docs/admin/kubelet.md | 92 +- .../apps/v1beta1/definitions.html | 142 +- docs/api-reference/batch/v1/definitions.html | 138 +- .../extensions/v1beta1/definitions.html | 232 +-- .../labels-annotations-taints.md | 2 +- .../extensions/v1beta1/definitions.html | 1709 ++++++++++++----- .../extensions/v1beta1/operations.html | 812 ++++++-- .../{ => federation}/v1beta1/definitions.html | 679 +++++-- .../{ => federation}/v1beta1/operations.html | 434 ++++- docs/reference/federation/index.md | 9 +- docs/reference/federation/v1/definitions.html | 686 +++++-- docs/reference/federation/v1/operations.html | 1525 +++++++++------ 18 files changed, 4883 insertions(+), 1762 deletions(-) rename docs/reference/federation/{ => federation}/v1beta1/definitions.html (60%) rename docs/reference/federation/{ => federation}/v1beta1/operations.html (61%) diff --git a/docs/admin/federation-apiserver.md b/docs/admin/federation-apiserver.md index 14c144449c8a3..e834005250e0e 100644 --- a/docs/admin/federation-apiserver.md +++ b/docs/admin/federation-apiserver.md @@ -21,24 +21,27 @@ federation-apiserver ### Options ``` - --admission-control string Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny, NamespaceLifecycle, OwnerReferencesPermissionEnforcement. (default "AlwaysAdmit") + --admission-control stringSlice Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: NamespaceLifecycle. (default [AlwaysAdmit]) --admission-control-config-file string File with admission control configuration. --advertise-address ip The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. --anonymous-auth Enables anonymous requests to the secure port of the API server. Requests that are not rejected by another authentication method are treated as anonymous requests. Anonymous requests have a username of system:anonymous, and a group name of system:unauthenticated. (default true) --audit-log-maxage int The maximum number of days to retain old audit log files based on the timestamp encoded in their filename. --audit-log-maxbackup int The maximum number of old audit log files to retain. - --audit-log-maxsize int The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB. - --audit-log-path string If set, all requests coming to the apiserver will be logged to this file. - --authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s) + --audit-log-maxsize int The maximum size in megabytes of the audit log file before it gets rotated. + --audit-log-path string If set, all requests coming to the apiserver will be logged to this file. '-' means standard out. + --audit-policy-file string Path to the file that defines the audit policy configuration. Requires the 'AdvancedAuditing' feature gate. With AdvancedAuditing, a profile is required to enable auditing. + --audit-webhook-config-file string Path to a kubeconfig formatted file that defines the audit webhook configuration. Requires the 'AdvancedAuditing' feature gate. + --audit-webhook-mode string Strategy for sending audit events. Blocking indicates sending events should block server responses. Batch causes the webhook to buffer and send events asynchronously. Known modes are batch,blocking. (default "batch") + --authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. (default 2m0s) --authentication-token-webhook-config-file string File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens. - --authorization-mode string Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC. (default "AlwaysAllow") + --authorization-mode string Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC,Node. (default "AlwaysAllow") --authorization-policy-file string File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. - --authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. (default 5m0s) - --authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. (default 30s) + --authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. (default 5m0s) + --authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. (default 30s) --authorization-webhook-config-file string File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. --basic-auth-file string If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. --bind-address ip The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). (default 0.0.0.0) - --cert-dir string The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") + --cert-dir string The directory where the TLS certs are located. If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") --client-ca-file string If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. --cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file. --cloud-provider string The provider for cloud services. Empty string for no provider. @@ -55,26 +58,32 @@ federation-apiserver --etcd-quorum-read If true, enable quorum read. --etcd-servers stringSlice List of etcd servers to connect with (scheme://ip:port), comma separated. --etcd-servers-overrides stringSlice Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. - --event-ttl duration Amount of time to retain events. Default is 1h. (default 1h0m0s) + --event-ttl duration Amount of time to retain events. (default 1h0m0s) --experimental-bootstrap-token-auth Enable to allow secrets of type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication. + --experimental-encryption-provider-config string The file containing configuration for encryption providers to be used for storing secrets in etcd --experimental-keystone-ca-file string If set, the Keystone server's certificate will be verified by one of the authorities in the experimental-keystone-ca-file, otherwise the host's root CA set will be used. --experimental-keystone-url string If passed, activates the keystone authentication plugin. --external-hostname string The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs). --feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (BETA - default=true) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) StreamingProxyRedirects=true|false (BETA - default=true) TaintBasedEvictions=true|false (ALPHA - default=false) --insecure-allow-any-token username/group1,group2 If set, your server will be INSECURE. Any token will be allowed and user information will be parsed from the token as username/group1,group2 - --insecure-bind-address ip The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. (default 127.0.0.1) - --insecure-port int The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) + --insecure-bind-address ip The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). (default 127.0.0.1) + --insecure-port int The port on which to serve unsecured, unauthenticated access. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) --master-service-namespace string DEPRECATED: the namespace from which the kubernetes master services should be injected into pods. (default "default") --max-mutating-requests-inflight int The maximum number of mutating requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 200) --max-requests-inflight int The maximum number of non-mutating requests in flight at a given time. When the server exceeds this, it rejects requests. Zero for no limit. (default 400) @@ -93,18 +102,18 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --runtime-config mapStringString A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/ key can be used to turn on/off specific api versions. apis// can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. --secure-port int The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 6443) --service-account-key-file stringArray File containing PEM-encoded x509 RSA or ECDSA private or public keys, used to verify ServiceAccount tokens. If unspecified, --tls-private-key-file is used. The specified file can contain multiple keys, and the flag can be specified multiple times with different files. - --service-account-lookup If true, validate ServiceAccount tokens exist in etcd as part of authentication. + --service-account-lookup If true, validate ServiceAccount tokens exist in etcd as part of authentication. (default true) --storage-backend string The storage backend for persistence. Options: 'etcd3' (default), 'etcd2'. --storage-media-type string The media type to use to store objects in storage. Some resources or storage backends may only support a specific media type and will ignore this setting. (default "application/vnd.kubernetes.protobuf") - --storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1beta1,authentication.k8s.io/v1,authorization.k8s.io/v1,autoscaling/v1,batch/v1,certificates.k8s.io/v1beta1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,policy/v1beta1,rbac.authorization.k8s.io/v1beta1,settings.k8s.io/v1alpha1,storage.k8s.io/v1beta1,v1") + --storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "admissionregistration.k8s.io/v1alpha1,apps/v1beta1,authentication.k8s.io/v1,authorization.k8s.io/v1,autoscaling/v1,batch/v1,certificates.k8s.io/v1beta1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,networking.k8s.io/v1,policy/v1beta1,rbac.authorization.k8s.io/v1beta1,settings.k8s.io/v1alpha1,storage.k8s.io/v1,v1") --target-ram-mb int Memory limit for apiserver in MB (used to configure sizes of caches, etc.) --tls-ca-file string If set, this certificate authority will used for secure access from Admission Controllers. This must be a valid PEM-encoded CA bundle. Altneratively, the certificate authority can be appended to the certificate provided by --tls-cert-file. --tls-cert-file string File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. --tls-private-key-file string File containing the default x509 private key matching --tls-cert-file. - --tls-sni-cert-key namedCertKey A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.key,example.crt" or "*.foo.com,foo.com:foo.key,foo.crt". (default []) + --tls-sni-cert-key namedCertKey A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com". (default []) --token-auth-file string If set, the file that will be used to secure the secure port of the API server via token authentication. --watch-cache Enable watch caching in the apiserver (default true) --watch-cache-sizes stringSlice List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/federation-controller-manager.md b/docs/admin/federation-controller-manager.md index a22e37e086836..53e578661f6fe 100644 --- a/docs/admin/federation-controller-manager.md +++ b/docs/admin/federation-controller-manager.md @@ -40,6 +40,7 @@ federation-controller-manager --leader-elect Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. --leader-elect-lease-duration duration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) --leader-elect-renew-deadline duration The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) + --leader-elect-resource-lock endpoints The type of resource resource object that is used for locking duringleader election. Supported options are endpoints (default) and `configmap`. (default "endpoints") --leader-elect-retry-period duration The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) --master string The address of the federation API server (overrides any value in kubeconfig) --port int The port that the controller-manager's http service runs on (default 10253) @@ -49,4 +50,4 @@ federation-controller-manager --zone-name string Zone name, like example.com. ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/kube-apiserver.md b/docs/admin/kube-apiserver.md index 53b51eaf1cc90..fa3b3338c9f66 100644 --- a/docs/admin/kube-apiserver.md +++ b/docs/admin/kube-apiserver.md @@ -21,7 +21,7 @@ kube-apiserver ### Options ``` - --admission-control string Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: AlwaysAdmit, AlwaysDeny, AlwaysPullImages, DefaultStorageClass, DefaultTolerationSeconds, DenyEscalatingExec, DenyExecOnPrivileged, ImagePolicyWebhook, InitialResources, LimitPodHardAntiAffinityTopology, LimitRanger, NamespaceAutoProvision, NamespaceExists, NamespaceLifecycle, OwnerReferencesPermissionEnforcement, PersistentVolumeLabel, PodNodeSelector, PodPreset, PodSecurityPolicy, ResourceQuota, SecurityContextDeny, ServiceAccount. (default "AlwaysAdmit") + --admission-control stringSlice Ordered list of plug-ins to do admission control of resources into cluster. Comma-delimited list of: NamespaceLifecycle. (default [AlwaysAdmit]) --admission-control-config-file string File with admission control configuration. --advertise-address ip The IP address on which to advertise the apiserver to members of the cluster. This address must be reachable by the rest of the cluster. If blank, the --bind-address will be used. If --bind-address is unspecified, the host's default interface will be used. --allow-privileged If true, allow privileged containers. @@ -29,19 +29,22 @@ kube-apiserver --apiserver-count int The number of apiservers running in the cluster, must be a positive number. (default 1) --audit-log-maxage int The maximum number of days to retain old audit log files based on the timestamp encoded in their filename. --audit-log-maxbackup int The maximum number of old audit log files to retain. - --audit-log-maxsize int The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB. - --audit-log-path string If set, all requests coming to the apiserver will be logged to this file. - --authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s) + --audit-log-maxsize int The maximum size in megabytes of the audit log file before it gets rotated. + --audit-log-path string If set, all requests coming to the apiserver will be logged to this file. '-' means standard out. + --audit-policy-file string Path to the file that defines the audit policy configuration. Requires the 'AdvancedAuditing' feature gate. With AdvancedAuditing, a profile is required to enable auditing. + --audit-webhook-config-file string Path to a kubeconfig formatted file that defines the audit webhook configuration. Requires the 'AdvancedAuditing' feature gate. + --audit-webhook-mode string Strategy for sending audit events. Blocking indicates sending events should block server responses. Batch causes the webhook to buffer and send events asynchronously. Known modes are batch,blocking. (default "batch") + --authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. (default 2m0s) --authentication-token-webhook-config-file string File with webhook configuration for token authentication in kubeconfig format. The API server will query the remote service to determine authentication for bearer tokens. - --authorization-mode string Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC. (default "AlwaysAllow") + --authorization-mode string Ordered list of plug-ins to do authorization on secure port. Comma-delimited list of: AlwaysAllow,AlwaysDeny,ABAC,Webhook,RBAC,Node. (default "AlwaysAllow") --authorization-policy-file string File with authorization policy in csv format, used with --authorization-mode=ABAC, on the secure port. - --authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. Default is 5m. (default 5m0s) - --authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. Default is 30s. (default 30s) + --authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. (default 5m0s) + --authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. (default 30s) --authorization-webhook-config-file string File with webhook configuration in kubeconfig format, used with --authorization-mode=Webhook. The API server will query the remote service to determine access on the API server's secure port. --azure-container-registry-config string Path to the file container Azure container registry configuration information. --basic-auth-file string If set, the file that will be used to admit requests to the secure port of the API server via http basic authentication. --bind-address ip The IP address on which to listen for the --secure-port port. The associated interface(s) must be reachable by the rest of the cluster, and by CLI/web clients. If blank, all interfaces will be used (0.0.0.0). (default 0.0.0.0) - --cert-dir string The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") + --cert-dir string The directory where the TLS certs are located. If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") --client-ca-file string If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. --cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file. --cloud-provider string The provider for cloud services. Empty string for no provider. @@ -49,7 +52,9 @@ kube-apiserver --cors-allowed-origins stringSlice List of allowed origins for CORS, comma separated. An allowed origin can be a regular expression to support subdomain matching. If this list is empty CORS will not be enabled. --delete-collection-workers int Number of workers spawned for DeleteCollection call. These are used to speed up namespace cleanup. (default 1) --deserialization-cache-size int Number of deserialized json objects to cache in memory. + --enable-aggregator-routing Turns on aggregator routing requests to endoints IP rather than cluster IP. --enable-garbage-collector Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-controller-manager. (default true) + --enable-logs-handler If true, install a /logs handler for the apiserver logs. (default true) --enable-swagger-ui Enables swagger ui on the apiserver at /swagger-ui --etcd-cafile string SSL Certificate Authority file used to secure etcd communication. --etcd-certfile string SSL certification file used to secure etcd communication. @@ -58,32 +63,38 @@ kube-apiserver --etcd-quorum-read If true, enable quorum read. --etcd-servers stringSlice List of etcd servers to connect with (scheme://ip:port), comma separated. --etcd-servers-overrides stringSlice Per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated. - --event-ttl duration Amount of time to retain events. Default is 1h. (default 1h0m0s) + --event-ttl duration Amount of time to retain events. (default 1h0m0s) --experimental-bootstrap-token-auth Enable to allow secrets of type 'bootstrap.kubernetes.io/token' in the 'kube-system' namespace to be used for TLS bootstrapping authentication. + --experimental-encryption-provider-config string The file containing configuration for encryption providers to be used for storing secrets in etcd --experimental-keystone-ca-file string If set, the Keystone server's certificate will be verified by one of the authorities in the experimental-keystone-ca-file, otherwise the host's root CA set will be used. --experimental-keystone-url string If passed, activates the keystone authentication plugin. --external-hostname string The hostname to use when generating externalized URLs for this master (e.g. Swagger API Docs). --feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (BETA - default=true) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) StreamingProxyRedirects=true|false (BETA - default=true) TaintBasedEvictions=true|false (ALPHA - default=false) --google-json-key string The Google Cloud Platform Service Account JSON Key to use for authentication. --insecure-allow-any-token username/group1,group2 If set, your server will be INSECURE. Any token will be allowed and user information will be parsed from the token as username/group1,group2 - --insecure-bind-address ip The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). Defaults to localhost. (default 127.0.0.1) - --insecure-port int The port on which to serve unsecured, unauthenticated access. Default 8080. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) + --insecure-bind-address ip The IP address on which to serve the --insecure-port (set to 0.0.0.0 for all interfaces). (default 127.0.0.1) + --insecure-port int The port on which to serve unsecured, unauthenticated access. It is assumed that firewall rules are set up such that this port is not reachable from outside of the cluster and that port 443 on the cluster's public address is proxied to this port. This is performed by nginx in the default setup. (default 8080) --kubelet-certificate-authority string Path to a cert file for the certificate authority. --kubelet-client-certificate string Path to a client cert file for TLS. --kubelet-client-key string Path to a client key file for TLS. --kubelet-https Use https for kubelet connections. (default true) - --kubelet-preferred-address-types stringSlice List of the preferred NodeAddressTypes to use for kubelet connections. (default [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP,LegacyHostIP]) + --kubelet-preferred-address-types stringSlice List of the preferred NodeAddressTypes to use for kubelet connections. (default [Hostname,InternalDNS,InternalIP,ExternalDNS,ExternalIP]) --kubelet-read-only-port uint DEPRECATED: kubelet port. (default 10255) --kubelet-timeout duration Timeout for kubelet operations. (default 5s) --kubernetes-service-node-port int If non-zero, the Kubernetes master service (which apiserver creates/maintains) will be of type NodePort, using this as the value of the port. If zero, the Kubernetes master service will be of type ClusterIP. @@ -98,6 +109,8 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --oidc-issuer-url string The URL of the OpenID issuer, only HTTPS scheme will be accepted. If set, it will be used to verify the OIDC JSON Web Token (JWT). --oidc-username-claim string The OpenID claim to use as the user name. Note that claims other than the default ('sub') is not guaranteed to be unique and immutable. This flag is experimental, please see the authentication documentation for further details. (default "sub") --profiling Enable profiling via web interface host:port/debug/pprof/ (default true) + --proxy-client-cert-file string Client certificate used to prove the identity of the aggregator or kube-apiserver when it must call out during a request. This includes proxying requests to a user api-server and calling out to webhook admission plugins. It is expected that this cert includes a signature from the CA in the --requestheader-client-ca-file flag. That CA is published in the 'extension-apiserver-authentication' configmap in the kube-system namespace. Components recieving calls from kube-aggregator should use that CA to perform their half of the mutual TLS verification. + --proxy-client-key-file string Private key for the client certificate used to prove the identity of the aggregator or kube-apiserver when it must call out during a request. This includes proxying requests to a user api-server and calling out to webhook admission plugins. --repair-malformed-updates If true, server will do its best to fix the update request to pass the validation, e.g., setting empty UID in update request to its existing value. This flag can be turned off after we fix all the clients that send malformed updates. (default true) --requestheader-allowed-names stringSlice List of client certificate common names to allow to provide usernames in headers specified by --requestheader-username-headers. If empty, any client certificate validated by the authorities in --requestheader-client-ca-file is allowed. --requestheader-client-ca-file string Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers @@ -107,22 +120,23 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --runtime-config mapStringString A set of key=value pairs that describe runtime configuration that may be passed to apiserver. apis/ key can be used to turn on/off specific api versions. apis// can be used to turn on/off specific resources. api/all and api/legacy are special keys to control all and legacy api versions respectively. --secure-port int The port on which to serve HTTPS with authentication and authorization. If 0, don't serve HTTPS at all. (default 6443) --service-account-key-file stringArray File containing PEM-encoded x509 RSA or ECDSA private or public keys, used to verify ServiceAccount tokens. If unspecified, --tls-private-key-file is used. The specified file can contain multiple keys, and the flag can be specified multiple times with different files. - --service-account-lookup If true, validate ServiceAccount tokens exist in etcd as part of authentication. + --service-account-lookup If true, validate ServiceAccount tokens exist in etcd as part of authentication. (default true) --service-cluster-ip-range ipNet A CIDR notation IP range from which to assign service cluster IPs. This must not overlap with any IP ranges assigned to nodes for pods. --service-node-port-range portRange A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range. (default 30000-32767) --ssh-keyfile string If non-empty, use secure SSH proxy to the nodes, using this user keyfile --ssh-user string If non-empty, use secure SSH proxy to the nodes, using this user name --storage-backend string The storage backend for persistence. Options: 'etcd3' (default), 'etcd2'. --storage-media-type string The media type to use to store objects in storage. Some resources or storage backends may only support a specific media type and will ignore this setting. (default "application/vnd.kubernetes.protobuf") - --storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "apps/v1beta1,authentication.k8s.io/v1,authorization.k8s.io/v1,autoscaling/v1,batch/v1,certificates.k8s.io/v1beta1,componentconfig/v1alpha1,extensions/v1beta1,imagepolicy.k8s.io/v1alpha1,policy/v1beta1,rbac.authorization.k8s.io/v1beta1,settings.k8s.io/v1alpha1,storage.k8s.io/v1beta1,v1") + --storage-versions string The per-group version to store resources in. Specified in the format "group1/version1,group2/version2,...". In the case where objects are moved from one group to the other, you may specify the format "group1=group2/v1beta1,group3/v1beta1,...". You only need to pass the groups you wish to change from the defaults. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable. (default "admission.k8s.io/v1alpha1,admissionregistration.k8s.io/v1alpha1,apps/v1beta1,authentication.k8s.io/v1,authorization.k8s.io/v1,autoscaling/v1,batch/v1,certificates.k8s.io/v1beta1,componentconfig/v1alpha1,extensions/v1beta1,federation/v1beta1,imagepolicy.k8s.io/v1alpha1,networking.k8s.io/v1,policy/v1beta1,rbac.authorization.k8s.io/v1beta1,settings.k8s.io/v1alpha1,storage.k8s.io/v1,v1") --target-ram-mb int Memory limit for apiserver in MB (used to configure sizes of caches, etc.) --tls-ca-file string If set, this certificate authority will used for secure access from Admission Controllers. This must be a valid PEM-encoded CA bundle. Altneratively, the certificate authority can be appended to the certificate provided by --tls-cert-file. --tls-cert-file string File containing the default x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes. --tls-private-key-file string File containing the default x509 private key matching --tls-cert-file. - --tls-sni-cert-key namedCertKey A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.key,example.crt" or "*.foo.com,foo.com:foo.key,foo.crt". (default []) + --tls-sni-cert-key namedCertKey A pair of x509 certificate and private key file paths, optionally suffixed with a list of domain patterns which are fully qualified domain names, possibly with prefixed wildcard segments. If no domain patterns are provided, the names of the certificate are extracted. Non-wildcard matches trump over wildcard matches, explicit domain patterns trump over extracted names. For multiple key/certificate pairs, use the --tls-sni-cert-key multiple times. Examples: "example.crt,example.key" or "foo.crt,foo.key:*.foo.com,foo.com". (default []) --token-auth-file string If set, the file that will be used to secure the secure port of the API server via token authentication. + --version version[=true] Print version information and quit --watch-cache Enable watch caching in the apiserver (default true) --watch-cache-sizes stringSlice List of watch cache sizes for every resource (pods, nodes, etc.), comma separated. The individual override format: resource#size, where size is a number. It takes effect when watch-cache is enabled. ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/kube-controller-manager.md b/docs/admin/kube-controller-manager.md index eb814e1e2d0a7..5a622265637e3 100644 --- a/docs/admin/kube-controller-manager.md +++ b/docs/admin/kube-controller-manager.md @@ -29,6 +29,7 @@ kube-controller-manager --allocate-node-cidrs Should CIDRs for Pods be allocated and set on the cloud provider. --attach-detach-reconcile-sync-period duration The reconciler sync wait time between volume attach detach. This duration must be larger than one second, and increasing this value from the default may allow for volumes to be mismatched with pods. (default 1m0s) --azure-container-registry-config string Path to the file container Azure container registry configuration information. + --cidr-allocator-type string Type of CIDR allocator to use (default "RangeAllocator") --cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file. --cloud-provider string The provider for cloud services. Empty string for no provider. --cluster-cidr string CIDR Range for Pods in cluster. @@ -38,7 +39,7 @@ kube-controller-manager --concurrent-deployment-syncs int32 The number of deployment objects that are allowed to sync concurrently. Larger number = more responsive deployments, but more CPU (and network) load (default 5) --concurrent-endpoint-syncs int32 The number of endpoint syncing operations that will be done concurrently. Larger number = faster endpoint updating, but more CPU (and network) load (default 5) --concurrent-gc-syncs int32 The number of garbage collector workers that are allowed to sync concurrently. (default 20) - --concurrent-namespace-syncs int32 The number of namespace objects that are allowed to sync concurrently. Larger number = more responsive namespace termination, but more CPU (and network) load (default 2) + --concurrent-namespace-syncs int32 The number of namespace objects that are allowed to sync concurrently. Larger number = more responsive namespace termination, but more CPU (and network) load (default 10) --concurrent-replicaset-syncs int32 The number of replica sets that are allowed to sync concurrently. Larger number = more responsive replica management, but more CPU (and network) load (default 5) --concurrent-resource-quota-syncs int32 The number of resource quotas that are allowed to sync concurrently. Larger number = more responsive quota management, but more CPU (and network) load (default 5) --concurrent-service-syncs int32 The number of services that are allowed to sync concurrently. Larger number = more responsive service management, but more CPU (and network) load (default 1) @@ -48,31 +49,39 @@ kube-controller-manager --contention-profiling Enable lock contention profiling, if profiling is enabled --controller-start-interval duration Interval between starting controller managers. --controllers stringSlice A list of controllers to enable. '*' enables all on-by-default controllers, 'foo' enables the controller named 'foo', '-foo' disables the controller named 'foo'. -All controllers: attachdetach, bootstrapsigner, certificatesigningrequests, cronjob, daemonset, deployment, disruption, endpoint, garbagecollector, horizontalpodautoscaling, job, namespace, node, persistentvolume-binder, podgc, replicaset, replicationcontroller, resourcequota, route, service, serviceaccount, serviceaccount-token, statefuleset, tokencleaner, ttl +All controllers: attachdetach, bootstrapsigner, cronjob, csrapproving, csrsigning, daemonset, deployment, disruption, endpoint, garbagecollector, horizontalpodautoscaling, job, namespace, node, persistentvolume-binder, podgc, replicaset, replicationcontroller, resourcequota, route, service, serviceaccount, serviceaccount-token, statefulset, tokencleaner, ttl Disabled-by-default controllers: bootstrapsigner, tokencleaner (default [*]) --deployment-controller-sync-period duration Period for syncing the deployments. (default 30s) --disable-attach-detach-reconcile-sync Disable volume attach detach reconciler sync. Disabling this may cause volumes to be mismatched with pods. Use wisely. --enable-dynamic-provisioning Enable dynamic provisioning for environments that support it. (default true) --enable-garbage-collector Enables the generic garbage collector. MUST be synced with the corresponding flag of the kube-apiserver. (default true) --enable-hostpath-provisioner Enable HostPath PV provisioning when running without a cloud provider. This allows testing and development of provisioning features. HostPath provisioning is not supported in any way, won't work in a multi-node cluster, and should not be used for anything other than testing or development. - --enable-taint-manager WARNING: Beta feature. If set to true, enables NoExecute Taints and will evict all not-tolerating Pods running on Nodes tainted with these kinds of Taints. (default true) + --enable-taint-manager WARNING: Beta feature. If set to true enables NoExecute Taints and will evict all not-tolerating Pod running on Nodes tainted with this kind of Taints. (default true) + --experimental-cluster-signing-duration duration The length of duration signed certificates will be given. (default 8760h0m0s) --feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (BETA - default=true) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) StreamingProxyRedirects=true|false (BETA - default=true) TaintBasedEvictions=true|false (ALPHA - default=false) --flex-volume-plugin-dir string Full path of the directory in which the flex volume plugin should search for additional third party volume plugins. (default "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/") --google-json-key string The Google Cloud Platform Service Account JSON Key to use for authentication. + --horizontal-pod-autoscaler-downscale-delay duration The period since last downscale, before another downscale can be performed in horizontal pod autoscaler. (default 5m0s) --horizontal-pod-autoscaler-sync-period duration The period for syncing the number of pods in horizontal pod autoscaler. (default 30s) + --horizontal-pod-autoscaler-upscale-delay duration The period since last upscale, before another upscale can be performed in horizontal pod autoscaler. (default 3m0s) --horizontal-pod-autoscaler-use-rest-clients WARNING: alpha feature. If set to true, causes the horizontal pod autoscaler controller to use REST clients through the kube-aggregator, instead of using the legacy metrics client through the API server proxy. This is required for custom metrics support in the horizonal pod autoscaler. - --insecure-experimental-approve-all-kubelet-csrs-for-group string The group for which the controller-manager will auto approve all CSRs for kubelet client certificates. + --insecure-experimental-approve-all-kubelet-csrs-for-group string This flag does nothing. --kube-api-burst int32 Burst to use while talking with kubernetes apiserver (default 30) --kube-api-content-type string Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") --kube-api-qps float32 QPS to use while talking with kubernetes apiserver (default 20) @@ -81,6 +90,7 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --leader-elect Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. (default true) --leader-elect-lease-duration duration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) --leader-elect-renew-deadline duration The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) + --leader-elect-resource-lock endpoints The type of resource resource object that is used for locking duringleader election. Supported options are endpoints (default) and `configmap`. (default "endpoints") --leader-elect-retry-period duration The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) --master string The address of the Kubernetes API server (overrides any value in kubeconfig) --min-resync-period duration The resync period in reflectors will be random between MinResyncPeriod and 2*MinResyncPeriod (default 12h0m0s) @@ -110,6 +120,7 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --terminated-pod-gc-threshold int32 Number of terminated pods that can exist before the terminated pod garbage collector starts deleting terminated pods. If <= 0, the terminated pod garbage collector is disabled. (default 12500) --unhealthy-zone-threshold float32 Fraction of Nodes in a zone which needs to be not Ready (minimum 3) for zone to be treated as unhealthy. (default 0.55) --use-service-account-credentials If true, use individual service account credentials for each controller. + --version version[=true] Print version information and quit ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/kube-proxy.md b/docs/admin/kube-proxy.md index 4772c0ae37e3f..4c8b62d67f11e 100644 --- a/docs/admin/kube-proxy.md +++ b/docs/admin/kube-proxy.md @@ -28,6 +28,7 @@ kube-proxy --bind-address ip The IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) --cleanup-iptables If true cleanup iptables rules and exit. --cluster-cidr string The CIDR range of pods in the cluster. It is used to bridge traffic coming from outside of the cluster. If not provided, no off-cluster bridging will be performed. + --config string The path to the configuration file. --config-sync-period duration How often configuration from the apiserver is refreshed. Must be greater than 0. (default 15m0s) --conntrack-max-per-core int32 Maximum number of NAT connections to track per CPU core (0 to leave the limit as-is and ignore conntrack-min). (default 32768) --conntrack-min int32 Minimum number of conntrack entries to allocate, regardless of conntrack-max-per-core (set conntrack-max-per-core=0 to leave the limit as-is). (default 131072) @@ -35,33 +36,41 @@ kube-proxy --conntrack-tcp-timeout-established duration Idle timeout for established TCP connections (0 to leave as-is) (default 24h0m0s) --feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (BETA - default=true) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) StreamingProxyRedirects=true|false (BETA - default=true) TaintBasedEvictions=true|false (ALPHA - default=false) --google-json-key string The Google Cloud Platform Service Account JSON Key to use for authentication. - --healthz-bind-address ip The IP address for the health check server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) (default 127.0.0.1) - --healthz-port int32 The port to bind the health check server. Use 0 to disable. (default 10249) + --healthz-bind-address ip The IP address and port for the health check server to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0:10256) + --healthz-port int32 The port to bind the health check server. Use 0 to disable. (default 10256) --hostname-override string If non-empty, will use this string as identification instead of the actual hostname. --iptables-masquerade-bit int32 If using the pure iptables proxy, the bit of the fwmark space to mark packets requiring SNAT with. Must be within the range [0, 31]. (default 14) --iptables-min-sync-period duration The minimum interval of how often the iptables rules can be refreshed as endpoints and services change (e.g. '5s', '1m', '2h22m'). --iptables-sync-period duration The maximum interval of how often iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0. (default 30s) - --kube-api-burst int32 Burst to use while talking with kubernetes apiserver (default 10) + --kube-api-burst int Burst to use while talking with kubernetes apiserver (default 10) --kube-api-content-type string Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") --kube-api-qps float32 QPS to use while talking with kubernetes apiserver (default 5) --kubeconfig string Path to kubeconfig file with authorization information (the master location is set by the master flag). - --masquerade-all If using the pure iptables proxy, SNAT everything + --masquerade-all If using the pure iptables proxy, SNAT everything (this not commonly needed) --master string The address of the Kubernetes API server (overrides any value in kubeconfig) --oom-score-adj int32 The oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000] (default -999) + --profiling If true enables profiling via web interface on /debug/pprof handler. --proxy-mode ProxyMode Which proxy mode to use: 'userspace' (older) or 'iptables' (faster). If blank, use the best-available proxy (currently iptables). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy. --proxy-port-range port-range Range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen. --udp-timeout duration How long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxy-mode=userspace (default 250ms) + --version version[=true] Print version information and quit + --write-config-to string If set, write the default configuration values to this file and exit. ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/kube-scheduler.md b/docs/admin/kube-scheduler.md index 9e8472bc80e19..75f5d3eeb9ddb 100644 --- a/docs/admin/kube-scheduler.md +++ b/docs/admin/kube-scheduler.md @@ -26,38 +26,47 @@ kube-scheduler ``` --address string The IP address to serve on (set to 0.0.0.0 for all interfaces) (default "0.0.0.0") - --algorithm-provider string The scheduling algorithm provider to use, one of: DefaultProvider | ClusterAutoscalerProvider (default "DefaultProvider") - --failure-domains string Indicate the "all topologies" set for an empty topologyKey when it's used for PreferredDuringScheduling pod anti-affinity. (default "kubernetes.io/hostname,failure-domain.beta.kubernetes.io/zone,failure-domain.beta.kubernetes.io/region") - --feature-gates value A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: + --algorithm-provider string The scheduling algorithm provider to use, one of: ClusterAutoscalerProvider | DefaultProvider (default "DefaultProvider") + --azure-container-registry-config string Path to the file container Azure container registry configuration information. + --contention-profiling Enable lock contention profiling, if profiling is enabled + --feature-gates mapStringBool A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: +Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) +AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (ALPHA - default=false) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) +ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) +ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) +StreamingProxyRedirects=true|false (BETA - default=true) +TaintBasedEvictions=true|false (ALPHA - default=false) --google-json-key string The Google Cloud Platform Service Account JSON Key to use for authentication. - --hard-pod-affinity-symmetric-weight int RequiredDuringScheduling affinity is not symmetric, but there is an implicit PreferredDuringScheduling affinity rule corresponding to every RequiredDuringScheduling affinity rule. --hard-pod-affinity-symmetric-weight represents the weight of implicit PreferredDuringScheduling affinity rule. (default 1) - --kube-api-burst value Burst to use while talking with kubernetes apiserver (default 100) + --kube-api-burst int32 Burst to use while talking with kubernetes apiserver (default 100) --kube-api-content-type string Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") - --kube-api-qps value QPS to use while talking with kubernetes apiserver (default 50) + --kube-api-qps float32 QPS to use while talking with kubernetes apiserver (default 50) --kubeconfig string Path to kubeconfig file with authorization and master location information. --leader-elect Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. (default true) --leader-elect-lease-duration duration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) --leader-elect-renew-deadline duration The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) + --leader-elect-resource-lock endpoints The type of resource resource object that is used for locking duringleader election. Supported options are endpoints (default) and `configmap`. (default "endpoints") --leader-elect-retry-period duration The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) + --lock-object-name string Define the name of the lock object. (default "kube-scheduler") + --lock-object-namespace string Define the namespace of the lock object. (default "kube-system") --master string The address of the Kubernetes API server (overrides any value in kubeconfig) - --policy-config-file string File with scheduler policy configuration - --port value The port that the scheduler's http service runs on (default 10251) + --policy-config-file string File with scheduler policy configuration. This file is used if policy ConfigMap is not provided or --use-legacy-policy-config==true + --policy-configmap string Name of the ConfigMap object that contains scheduler's policy configuration. It must exist in the system namespace before scheduler initialization if --use-legacy-policy-config==false. The config must be provided as the value of an element in 'Data' map with the key='policy.cfg' + --policy-configmap-namespace string The namespace where policy ConfigMap is located. The system namespace will be used if this is not provided or is empty. (default "kube-system") + --port int32 The port that the scheduler's http service runs on (default 10251) --profiling Enable profiling via web interface host:port/debug/pprof/ (default true) - --scheduler-name string Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's annotation with key 'scheduler.alpha.kubernetes.io/name' (default "default-scheduler") + --scheduler-name string Name of the scheduler, used to select which pods will be processed by this scheduler, based on pod's "spec.SchedulerName". (default "default-scheduler") + --use-legacy-policy-config When set to true, scheduler will ignore policy ConfigMap and uses policy config file + --version version[=true] Print version information and quit ``` -###### Auto generated by spf13/cobra on 24-Oct-2016 - - - - - - - -[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/admin/kube-scheduler.md?pixel)]() - +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/admin/kubelet.md b/docs/admin/kubelet.md index 486ceab71b379..d4cff05478046 100644 --- a/docs/admin/kubelet.md +++ b/docs/admin/kubelet.md @@ -16,16 +16,18 @@ various mechanisms (primarily through the apiserver) and ensures that the contai described in those PodSpecs are running and healthy. The kubelet doesn't manage containers which were not created by Kubernetes. -Other than from a PodSpec, there are three ways that a container -manifest can be provided to the Kubelet from the apiserver. +Other than from an PodSpec from the apiserver, there are three ways that a container +manifest can be provided to the Kubelet. -File: Path passed as a flag on the command line. This file is rechecked every 20 -seconds (configurable with a flag). +File: Path passed as a flag on the command line. Files under this path will be monitored +periodically for updates. The monitoring period is 20s by default and is configurable +via a flag. HTTP endpoint: HTTP endpoint passed as a parameter on the command line. This endpoint is checked every 20 seconds (also configurable with a flag). -HTTP server: The kubelet can also listen for HTTP requests and respond to a simple API call to submit a new manifest. +HTTP server: The kubelet can also listen for HTTP and respond to a simple API +(underspec'd currently) to submit a new manifest. ``` kubelet @@ -35,7 +37,7 @@ kubelet ``` --address ip The IP address for the Kubelet to serve on (set to 0.0.0.0 for all interfaces) (default 0.0.0.0) - --allow-privileged If true, allow containers to request privileged mode. [default=false] + --allow-privileged If true, allow containers to request privileged mode. --anonymous-auth Enables anonymous requests to the Kubelet server. Requests that are not rejected by another authentication method are treated as anonymous requests. Anonymous requests have a username of system:anonymous, and a group name of system:unauthenticated. (default true) --authentication-token-webhook Use the TokenReview API to determine authentication for bearer tokens. --authentication-token-webhook-cache-ttl duration The duration to cache responses from the webhook token authenticator. (default 2m0s) @@ -43,33 +45,35 @@ kubelet --authorization-webhook-cache-authorized-ttl duration The duration to cache 'authorized' responses from the webhook authorizer. (default 5m0s) --authorization-webhook-cache-unauthorized-ttl duration The duration to cache 'unauthorized' responses from the webhook authorizer. (default 30s) --azure-container-registry-config string Path to the file container Azure container registry configuration information. + --bootstrap-kubeconfig string Path to a kubeconfig file that will be used to get client certificate for kubelet. If the file specified by --kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. On success, a kubeconfig file referencing the generated client certificate and key is written to the path specified by --kubeconfig. The client certificate and key file will be stored in the directory pointed by --cert-dir. --cadvisor-port int32 The port of the localhost cAdvisor endpoint (default 4194) - --cert-dir string The directory where the TLS certs are located (by default /var/run/kubernetes). If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") + --cert-dir string The directory where the TLS certs are located. If --tls-cert-file and --tls-private-key-file are provided, this flag will be ignored. (default "/var/run/kubernetes") --cgroup-driver string Driver that the kubelet uses to manipulate cgroups on the host. Possible values: 'cgroupfs', 'systemd' (default "cgroupfs") --cgroup-root string Optional root cgroup to use for pods. This is handled by the container runtime on a best effort basis. Default: '', which means use the container runtime default. - --cgroups-per-qos Enable creation of QoS cgroup hierarchy, if true top level QoS and pod cgroups are created. [default: true] (default true) - --chaos-chance float If > 0.0, introduce random client errors and latency. Intended for testing. [default=0.0] + --cgroups-per-qos Enable creation of QoS cgroup hierarchy, if true top level QoS and pod cgroups are created. (default true) + --chaos-chance float If > 0.0, introduce random client errors and latency. Intended for testing. --client-ca-file string If set, any request presenting a client certificate signed by one of the authorities in the client-ca-file is authenticated with an identity corresponding to the CommonName of the client certificate. --cloud-config string The path to the cloud provider configuration file. Empty string for no configuration file. - --cloud-provider string The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. [default=auto-detect] (default "auto-detect") + --cloud-provider string The provider for cloud services. By default, kubelet will attempt to auto-detect the cloud provider. Specify empty string for running with no cloud provider. (default "auto-detect") --cluster-dns stringSlice Comma-separated list of DNS server IP address. This value is used for containers DNS server in case of Pods with "dnsPolicy=ClusterFirst". Note: all DNS servers appearing in the list MUST serve the same set of records otherwise name resolution within the cluster may not work correctly. There is no guarantee as to which DNS server may be contacted for name resolution. --cluster-domain string Domain for this cluster. If set, kubelet will configure all containers to search this domain in addition to the host's search domains --cni-bin-dir string The full path of the directory in which to search for CNI plugin binaries. Default: /opt/cni/bin --cni-conf-dir string The full path of the directory in which to search for CNI config files. Default: /etc/cni/net.d - --container-runtime string The container runtime to use. Possible values: 'docker', 'rkt'. Default: 'docker'. (default "docker") - --container-runtime-endpoint string [Experimental] The unix socket endpoint of remote runtime service. The endpoint is used only when CRI integration is enabled (--enable-cri) - --containerized Experimental support for running kubelet in a container. Intended for testing. [default=false] + --container-runtime string The container runtime to use. Possible values: 'docker', 'rkt'. (default "docker") + --container-runtime-endpoint string [Experimental] The endpoint of remote runtime service. Currently unix socket is supported on Linux, and tcp is supported on windows. Examples:'unix:///var/run/dockershim.sock', 'tcp://localhost:3735' (default "unix:///var/run/dockershim.sock") + --containerized Experimental support for running kubelet in a container. Intended for testing. --contention-profiling Enable lock contention profiling, if profiling is enabled --cpu-cfs-quota Enable CPU CFS quota enforcement for containers that specify CPU limits (default true) + --docker-disable-shared-pid The Container Runtime Interface (CRI) defaults to using a shared PID namespace for containers in a pod when running with Docker 1.13.1 or higher. Setting this flag reverts to the previous behavior of isolated PID namespaces. This ability will be removed in a future Kubernetes release. --docker-endpoint string Use this for the docker endpoint to communicate with (default "unix:///var/run/docker.sock") --enable-controller-attach-detach Enables the Attach/Detach controller to manage attachment/detachment of volumes scheduled to this node, and disables kubelet from executing any attach/detach operations (default true) --enable-custom-metrics Support for gathering custom metrics. --enable-debugging-handlers Enables server endpoints for log collection and local running of containers and commands (default true) --enable-server Enable the Kubelet's server (default true) - --enforce-node-allocatable stringSlice A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptible options are 'pods', 'system-reserved' & 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' & '--kube-reserved-cgroup' must also be set respectively. See https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md for more details. [default='pods'] (default [pods]) + --enforce-node-allocatable stringSlice A comma separated list of levels of node allocatable enforcement to be enforced by kubelet. Acceptible options are 'pods', 'system-reserved' & 'kube-reserved'. If the latter two options are specified, '--system-reserved-cgroup' & '--kube-reserved-cgroup' must also be set respectively. See https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md for more details. (default [pods]) --event-burst int32 Maximum size of a bursty event records, temporarily allows event records to burst to this number, while still not exceeding event-qps. Only used if --event-qps > 0 (default 10) --event-qps int32 If > 0, limit event creations per second to this value. If 0, unlimited. (default 5) - --eviction-hard string A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction. (default "memory.available<100Mi") + --eviction-hard string A set of eviction thresholds (e.g. memory.available<1Gi) that if met would trigger a pod eviction. (default "memory.available<100Mi,nodefs.available<10%,nodefs.inodesFree<5%") --eviction-max-pod-grace-period int32 Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met. If negative, defer to pod specified value. --eviction-minimum-reclaim string A set of minimum reclaims (e.g. imagefs.available=2Gi) that describes the minimum amount of resource the kubelet will reclaim when performing a pod eviction if that resource is under pressure. --eviction-pressure-transition-period duration Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition. (default 5m0s) @@ -78,7 +82,7 @@ kubelet --exit-on-lock-contention Whether kubelet should exit upon lock-file contention. --experimental-allocatable-ignore-eviction When set to 'true', Hard Eviction Thresholds will be ignored while calculating Node Allocatable. See https://git.k8s.io/community/contributors/design-proposals/node-allocatable.md for more details. [default=false] --experimental-allowed-unsafe-sysctls stringSlice Comma-separated whitelist of unsafe sysctls or unsafe sysctl patterns (ending in *). Use these at your own risk. - --experimental-bootstrap-kubeconfig string Path to a kubeconfig file that will be used to get client certificate for kubelet. If the file specified by --kubeconfig does not exist, the bootstrap kubeconfig is used to request a client certificate from the API server. On success, a kubeconfig file referencing the generated key and obtained certificate is written to the path specified by --kubeconfig. The certificate and key file will be stored in the directory pointed by --cert-dir. + --experimental-bootstrap-kubeconfig string deprecated: use --bootstrap-kubeconfig --experimental-check-node-capabilities-before-mount [Experimental] if set true, the kubelet will check the underlying node for required componenets (binaries, etc.) before performing the mount --experimental-fail-swap-on Makes the Kubelet fail to start if swap is enabled on the node. This is a temporary opton to maintain legacy behavior, failing due to swap enabled will happen by default in v1.6. --experimental-kernel-memcg-notification If enabled, the kubelet will integrate with the kernel memcg notification to determine if memory eviction thresholds are crossed rather than polling. @@ -86,37 +90,42 @@ kubelet --experimental-qos-reserved mapStringString A set of ResourceName=Percentage (e.g. memory=50%) pairs that describe how pod resource requests are reserved at the QoS level. Currently only memory is supported. [default=none] --feature-gates string A set of key=value pairs that describe feature gates for alpha/experimental features. Options are: Accelerators=true|false (ALPHA - default=false) +AdvancedAuditing=true|false (ALPHA - default=false) AffinityInAnnotations=true|false (ALPHA - default=false) AllAlpha=true|false (ALPHA - default=false) -AllowExtTrafficLocalEndpoints=true|false (BETA - default=true) +AllowExtTrafficLocalEndpoints=true|false (default=true) AppArmor=true|false (BETA - default=true) DynamicKubeletConfig=true|false (ALPHA - default=false) DynamicVolumeProvisioning=true|false (ALPHA - default=true) ExperimentalCriticalPodAnnotation=true|false (ALPHA - default=false) ExperimentalHostUserNamespaceDefaulting=true|false (BETA - default=false) +LocalStorageCapacityIsolation=true|false (ALPHA - default=false) +PersistentLocalVolumes=true|false (ALPHA - default=false) +RotateKubeletClientCertificate=true|false (ALPHA - default=false) +RotateKubeletServerCertificate=true|false (ALPHA - default=false) StreamingProxyRedirects=true|false (BETA - default=true) TaintBasedEvictions=true|false (ALPHA - default=false) --file-check-frequency duration Duration between checking config files for new data (default 20s) --google-json-key string The Google Cloud Platform Service Account JSON Key to use for authentication. --hairpin-mode string How should the kubelet setup hairpin NAT. This allows endpoints of a Service to loadbalance back to themselves if they should try to access their own Service. Valid values are "promiscuous-bridge", "hairpin-veth" and "none". (default "promiscuous-bridge") - --healthz-bind-address ip The IP address for the healthz server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces) (default 127.0.0.1) + --healthz-bind-address ip The IP address for the healthz server to serve on. (set to 0.0.0.0 for all interfaces) (default 127.0.0.1) --healthz-port int32 The port of the localhost healthz endpoint (default 10248) - --host-ipc-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. [default="*"] (default [*]) - --host-network-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use of host network. [default="*"] (default [*]) - --host-pid-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. [default="*"] (default [*]) + --host-ipc-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use the host ipc namespace. (default [*]) + --host-network-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use of host network. (default [*]) + --host-pid-sources stringSlice Comma-separated list of sources from which the Kubelet allows pods to use the host pid namespace. (default [*]) --hostname-override string If non-empty, will use this string as identification instead of the actual hostname. --http-check-frequency duration Duration between checking http for new data (default 20s) - --image-gc-high-threshold int32 The percent of disk usage after which image garbage collection is always run. Default: 90% (default 90) - --image-gc-low-threshold int32 The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. Default: 80% (default 80) - --image-pull-progress-deadline duration If no pulling progress is made before this deadline, the image pulling will be cancelled. Default: 1m0s. (default 1m0s) - --image-service-endpoint string [Experimental] The unix socket endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. The endpoint is used only when CRI integration is enabled (--enable-cri) + --image-gc-high-threshold int32 The percent of disk usage after which image garbage collection is always run. (default 85) + --image-gc-low-threshold int32 The percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to. (default 80) + --image-pull-progress-deadline duration If no pulling progress is made before this deadline, the image pulling will be cancelled. (default 1m0s) + --image-service-endpoint string [Experimental] The endpoint of remote image service. If not specified, it will be the same with container-runtime-endpoint by default. Currently unix socket is supported on Linux, and tcp is supported on windows. Examples:'unix:///var/run/dockershim.sock', 'tcp://localhost:3735' --iptables-drop-bit int32 The bit of the fwmark space to mark packets for dropping. Must be within the range [0, 31]. (default 15) --iptables-masquerade-bit int32 The bit of the fwmark space to mark packets for SNAT. Must be within the range [0, 31]. Please match this parameter with corresponding parameter in kube-proxy. (default 14) --keep-terminated-pod-volumes Keep terminated pod volumes mounted to the node after the pod terminates. Can be useful for debugging volume related issues. --kube-api-burst int32 Burst to use while talking with kubernetes apiserver (default 10) --kube-api-content-type string Content type of requests sent to apiserver. (default "application/vnd.kubernetes.protobuf") --kube-api-qps int32 QPS to use while talking with kubernetes apiserver (default 5) - --kube-reserved mapStringString A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for kubernetes system components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none] + --kube-reserved mapStringString A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi, storage=1Gi) pairs that describe resources reserved for kubernetes system components. Currently cpu, memory and local storage for root file system are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none] --kube-reserved-cgroup string Absolute name of the top level cgroup that is used to manage kubernetes components for which compute resources were reserved via '--kube-reserved' flag. Ex. '/kube-reserved'. [default=''] --kubeconfig string Path to a kubeconfig file, specifying how to connect to the API server. --api-servers will be used for the location unless --require-kubeconfig is set. (default "/var/lib/kubelet/kubeconfig") --kubelet-cgroups string Optional absolute name of cgroups to create and run the Kubelet in. @@ -124,17 +133,14 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --make-iptables-util-chains If true, kubelet will ensure iptables utility rules are present on host. (default true) --manifest-url string URL for accessing the container manifest --manifest-url-header string HTTP header to use when accessing the manifest URL, with the key separated from the value with a ':', as in 'key:value' - --master-service-namespace string The namespace from which the kubernetes master services should be injected into pods (default "default") - --max-open-files int Number of files that can be opened by Kubelet process. [default=1000000] (default 1000000) + --max-open-files int Number of files that can be opened by Kubelet process. (default 1000000) --max-pods int32 Number of Pods that can run on this Kubelet. (default 110) - --minimum-image-ttl-duration duration Minimum age for an unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. Default: '2m' (default 2m0s) + --minimum-image-ttl-duration duration Minimum age for an unused image before it is garbage collected. Examples: '300ms', '10s' or '2h45m'. (default 2m0s) --network-plugin string The name of the network plugin to be invoked for various events in kubelet/pod lifecycle - --network-plugin-dir string The full path of the directory in which to search for network plugins or CNI config --network-plugin-mtu int32 The MTU to be passed to the network plugin, to override the default. Set to 0 to use the default 1460 MTU. --node-ip string IP address of the node. If set, kubelet will use this IP address for the node --node-labels mapStringString Labels to add when registering the node in the cluster. Labels must be key=value pairs separated by ','. - --node-status-update-frequency duration Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. Default: 10s (default 10s) - --non-masquerade-cidr string Traffic to IPs outside this range will use IP masquerade. (default "10.0.0.0/8") + --node-status-update-frequency duration Specifies how often kubelet posts node status to master. Note: be cautious when changing the constant, it must work with nodeMonitorGracePeriod in nodecontroller. (default 10s) --oom-score-adj int32 The oom-score-adj value for kubelet process. Values must be within the range [-1000, 1000] (default -999) --pod-cidr string The CIDR to use for pod IP addresses, only used in standalone mode. In cluster mode, this is obtained from the master. --pod-infra-container-image string The image whose network/ipc namespaces containers in each pod will use. (default "gcr.io/google_containers/pause-amd64:3.0") @@ -142,12 +148,13 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --pods-per-core int32 Number of Pods per core that can run on this Kubelet. The total number of Pods on this Kubelet cannot exceed max-pods, so max-pods will be used if this calculation results in a larger number of Pods allowed on the Kubelet. A value of 0 disables this limit. --port int32 The port for the Kubelet to serve on. (default 10250) --protect-kernel-defaults Default kubelet behaviour for kernel tuning. If set, kubelet errors if any of kernel tunables is different than kubelet defaults. + --provider-id string Unique identifier for identifying the node in a machine database, i.e cloudprovider --read-only-port int32 The read-only port for the Kubelet to serve on with no authentication/authorization (set to 0 to disable) (default 10255) --really-crash-for-testing If true, when panics occur crash. Intended for testing. --register-node Register the node with the apiserver (defaults to true if --api-servers is set) (default true) - --register-with-taints []api.Taint Register the node with the given list of taints (comma seperated "=:"). No-op if register-node is false. - --registry-burst int32 Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0 (default 10) - --registry-qps int32 If > 0, limit registry pull QPS to this value. If 0, unlimited. [default=5.0] (default 5) + --register-with-taints []api.Taint Register the node with the given list of taints (comma separated "=:"). No-op if register-node is false. + --registry-burst int32 Maximum size of a bursty pulls, temporarily allows pulls to burst to this number, while still not exceeding registry-qps. Only used if --registry-qps > 0 (default 10) + --registry-qps int32 If > 0, limit registry pull QPS to this value. If 0, unlimited. (default 5) --require-kubeconfig If true the Kubelet will exit if there are configuration errors, and will ignore the value of --api-servers in favor of the server defined in the kubeconfig file. --resolv-conf string Resolver configuration file used as the basis for the container DNS resolution configuration. (default "/etc/resolv.conf") --rkt-api-endpoint string The endpoint of the rkt API service to communicate with. Only used if --container-runtime='rkt'. (default "localhost:15441") @@ -155,18 +162,19 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --root-dir string Directory path for managing kubelet files (volume mounts,etc). (default "/var/lib/kubelet") --runonce If true, exit after spawning pods from local manifests or remote urls. Exclusive with --api-servers, and --enable-server --runtime-cgroups string Optional absolute name of cgroups to create and run the runtime in. - --runtime-request-timeout duration Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. Default: 2m0s (default 2m0s) + --runtime-request-timeout duration Timeout of all runtime requests except long running request - pull, logs, exec and attach. When timeout exceeded, kubelet will cancel the request, throw out an error and retry later. (default 2m0s) --seccomp-profile-root string Directory path for seccomp profiles. (default "/var/lib/kubelet/seccomp") - --serialize-image-pulls Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. [default=true] (default true) + --serialize-image-pulls Pull images one at a time. We recommend *not* changing the default value on nodes that run docker daemon with version < 1.9 or an Aufs storage backend. Issue #10959 has more details. (default true) --streaming-connection-idle-timeout duration Maximum time a streaming connection can be idle before the connection is automatically closed. 0 indicates no timeout. Example: '5m' (default 4h0m0s) --sync-frequency duration Max period between synchronizing running containers and config (default 1m0s) - --system-cgroups / Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under /. Empty for no container. Rolling back the flag requires a reboot. (Default: ""). - --system-reserved mapStringString A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=150G) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none] + --system-cgroups / Optional absolute name of cgroups in which to place all non-kernel processes that are not already inside a cgroup under /. Empty for no container. Rolling back the flag requires a reboot. + --system-reserved mapStringString A set of ResourceName=ResourceQuantity (e.g. cpu=200m,memory=500Mi) pairs that describe resources reserved for non-kubernetes components. Currently only cpu and memory are supported. See http://kubernetes.io/docs/user-guide/compute-resources for more detail. [default=none] --system-reserved-cgroup string Absolute name of the top level cgroup that is used to manage non-kubernetes components for which compute resources were reserved via '--system-reserved' flag. Ex. '/system-reserved'. [default=''] - --tls-cert-file string File containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to --cert-dir. + --tls-cert-file string File containing x509 Certificate used for serving HTTPS (with intermediate certs, if any, concatenated after server cert). If --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to the directory passed to --cert-dir. --tls-private-key-file string File containing x509 private key matching --tls-cert-file. + --version version[=true] Print version information and quit --volume-plugin-dir string The full path of the directory in which to search for additional third party volume plugins (default "/usr/libexec/kubernetes/kubelet-plugins/volume/exec/") - --volume-stats-agg-period duration Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0. Default: '1m' (default 1m0s) + --volume-stats-agg-period duration Specifies interval for kubelet to calculate and cache the volume disk usage for all pods and volumes. To disable volume calculations, set to 0. (default 1m0s) ``` -###### Auto generated by spf13/cobra on 21-Mar-2017 +###### Auto generated by spf13/cobra on 11-Jul-2017 diff --git a/docs/api-reference/apps/v1beta1/definitions.html b/docs/api-reference/apps/v1beta1/definitions.html index 239dc4505f0cf..2f15ecf9070e7 100755 --- a/docs/api-reference/apps/v1beta1/definitions.html +++ b/docs/api-reference/apps/v1beta1/definitions.html @@ -41,7 +41,7 @@

v1.PhotonPersistentDiskVolumeSourc - + @@ -79,7 +79,7 @@

versioned.Event

- + @@ -120,7 +120,7 @@

v1.Preconditions

- + @@ -154,7 +154,7 @@

v1.SELinuxOptions

- + @@ -209,7 +209,7 @@

v1.ObjectFieldSelector

- + @@ -250,7 +250,7 @@

v1.VolumeMount

- + @@ -305,7 +305,7 @@

v1.NFSVolumeSource

- + @@ -353,7 +353,7 @@

v1.PersistentVolumeClaimSpec

- + @@ -408,7 +408,7 @@

v1.CephFSVolumeSource

- + @@ -477,7 +477,7 @@

v1.HTTPHeader

- + @@ -518,7 +518,7 @@

v1.FCVolumeSource

- + @@ -573,7 +573,7 @@

v1.DownwardAPIVolumeSource

- + @@ -614,7 +614,7 @@

unversioned.StatusCause

- + @@ -666,7 +666,7 @@

v1beta1.StatefulSetStatus

- + @@ -710,7 +710,7 @@

v1.GCEPersistentDiskVolumeSource

- + @@ -765,7 +765,7 @@

v1.TCPSocketAction

- + @@ -802,7 +802,7 @@

v1.ConfigMapVolumeSource

- + @@ -850,7 +850,7 @@

unversioned.StatusDetails

- + @@ -912,7 +912,7 @@

v1.GitRepoVolumeSource

- + @@ -960,7 +960,7 @@

v1.HTTPGetAction

- + @@ -1022,7 +1022,7 @@

v1.Capabilities

- + @@ -1063,7 +1063,7 @@

v1.LocalObjectReference

- + @@ -1097,7 +1097,7 @@

v1.Container

- + @@ -1250,7 +1250,7 @@

v1.PodSecurityContext

- + @@ -1314,7 +1314,7 @@

v1.ExecAction

- + @@ -1348,7 +1348,7 @@

v1beta1.StatefulSetSpec

- + @@ -1410,7 +1410,7 @@

v1.ObjectMeta

- + @@ -1556,7 +1556,7 @@

v1.OwnerReference

- + @@ -1622,7 +1622,7 @@

v1.HostPathVolumeSource

- + @@ -1656,7 +1656,7 @@

v1.AzureFileVolumeSource

- + @@ -1704,7 +1704,7 @@

v1.ISCSIVolumeSource

- + @@ -1773,7 +1773,7 @@

v1.EmptyDirVolumeSource

- + @@ -1813,7 +1813,7 @@

v1.CinderVolumeSource

- + @@ -1861,7 +1861,7 @@

v1.PersistentVolumeClaim

- + @@ -1923,7 +1923,7 @@

v1.SecurityContext

- + @@ -1992,7 +1992,7 @@

v1.PersistentVolumeClaimVolumeSou - + @@ -2036,7 +2036,7 @@

v1.AWSElasticBlockStoreVolumeSourc - + @@ -2091,7 +2091,7 @@

v1.FlockerVolumeSource

- + @@ -2132,7 +2132,7 @@

unversioned.ListMeta

- + @@ -2173,7 +2173,7 @@

v1.PersistentVolumeClaimStatus

- + @@ -2221,7 +2221,7 @@

v1.QuobyteVolumeSource

- + @@ -2283,7 +2283,7 @@

unversioned.LabelSelector

- + @@ -2327,7 +2327,7 @@

v1.SecretVolumeSource

- + @@ -2375,7 +2375,7 @@

v1.EnvVar

- + @@ -2427,7 +2427,7 @@

v1.ResourceRequirements

- + @@ -2468,7 +2468,7 @@

v1.FlexVolumeSource

- + @@ -2530,7 +2530,7 @@

v1.EnvVarSource

- + @@ -2585,7 +2585,7 @@

v1.PodTemplateSpec

- + @@ -2626,7 +2626,7 @@

v1.KeyToPath

- + @@ -2674,7 +2674,7 @@

v1.AzureDiskVolumeSource

- + @@ -2736,7 +2736,7 @@

v1.VsphereVirtualDiskVolumeSource - + @@ -2777,7 +2777,7 @@

v1.DeleteOptions

- + @@ -2842,7 +2842,7 @@

v1beta1.StatefulSet

- + @@ -2904,7 +2904,7 @@

v1.Volume

- + @@ -3099,7 +3099,7 @@

v1.ResourceFieldSelector

- + @@ -3147,7 +3147,7 @@

v1.Probe

- + @@ -3230,7 +3230,7 @@

unversioned.LabelSelectorRequirem - + @@ -3278,7 +3278,7 @@

unversioned.APIResourceList

- + @@ -3333,7 +3333,7 @@

v1.SecretKeySelector

- + @@ -3374,7 +3374,7 @@

unversioned.Status

- + @@ -3461,7 +3461,7 @@

unversioned.APIResource

- + @@ -3509,7 +3509,7 @@

v1.DownwardAPIVolumeFile

- + @@ -3564,7 +3564,7 @@

v1.PodSpec

- + @@ -3710,7 +3710,7 @@

v1.ContainerPort

- + @@ -3772,7 +3772,7 @@

v1.Lifecycle

- + @@ -3813,7 +3813,7 @@

v1.ConfigMapKeySelector

- + @@ -3854,7 +3854,7 @@

v1.Handler

- + @@ -3902,7 +3902,7 @@

v1.GlusterfsVolumeSource

- + @@ -3950,7 +3950,7 @@

v1beta1.StatefulSetList

- + @@ -4009,7 +4009,7 @@

v1.RBDVolumeSource

- + @@ -4096,4 +4096,4 @@

any

- \ No newline at end of file + diff --git a/docs/api-reference/batch/v1/definitions.html b/docs/api-reference/batch/v1/definitions.html index 3c17f1bbe1725..50f6f28e449bb 100755 --- a/docs/api-reference/batch/v1/definitions.html +++ b/docs/api-reference/batch/v1/definitions.html @@ -43,7 +43,7 @@

v1.PhotonPersistentDiskVolumeSourc - + @@ -81,7 +81,7 @@

versioned.Event

- + @@ -122,7 +122,7 @@

v1.Preconditions

- + @@ -156,7 +156,7 @@

v1.SELinuxOptions

- + @@ -211,7 +211,7 @@

v1.ObjectFieldSelector

- + @@ -252,7 +252,7 @@

v1.VolumeMount

- + @@ -307,7 +307,7 @@

v1.NFSVolumeSource

- + @@ -355,7 +355,7 @@

v1.CephFSVolumeSource

- + @@ -424,7 +424,7 @@

v1.HTTPHeader

- + @@ -465,7 +465,7 @@

v1.FCVolumeSource

- + @@ -520,7 +520,7 @@

v1.DownwardAPIVolumeSource

- + @@ -561,7 +561,7 @@

unversioned.StatusCause

- + @@ -616,7 +616,7 @@

v1.GCEPersistentDiskVolumeSource

- + @@ -671,7 +671,7 @@

v1.TCPSocketAction

- + @@ -708,7 +708,7 @@

v1.ConfigMapVolumeSource

- + @@ -756,7 +756,7 @@

unversioned.StatusDetails

- + @@ -818,7 +818,7 @@

v1.GitRepoVolumeSource

- + @@ -866,7 +866,7 @@

v1.HTTPGetAction

- + @@ -928,7 +928,7 @@

v1.Capabilities

- + @@ -969,7 +969,7 @@

v1.LocalObjectReference

- + @@ -1003,7 +1003,7 @@

v1.Container

- + @@ -1156,7 +1156,7 @@

v1.PodSecurityContext

- + @@ -1220,7 +1220,7 @@

v1.ExecAction

- + @@ -1254,7 +1254,7 @@

v1.JobStatus

- + @@ -1323,7 +1323,7 @@

v1.ObjectMeta

- + @@ -1469,7 +1469,7 @@

v1.OwnerReference

- + @@ -1535,7 +1535,7 @@

v1.HostPathVolumeSource

- + @@ -1569,7 +1569,7 @@

v1.AzureFileVolumeSource

- + @@ -1617,7 +1617,7 @@

v1.ISCSIVolumeSource

- + @@ -1686,7 +1686,7 @@

v1.EmptyDirVolumeSource

- + @@ -1726,7 +1726,7 @@

v1.CinderVolumeSource

- + @@ -1774,7 +1774,7 @@

v1.SecurityContext

- + @@ -1843,7 +1843,7 @@

v1.PersistentVolumeClaimVolumeSou - + @@ -1887,7 +1887,7 @@

v1.AWSElasticBlockStoreVolumeSourc - + @@ -1942,7 +1942,7 @@

v1.FlockerVolumeSource

- + @@ -1983,7 +1983,7 @@

unversioned.ListMeta

- + @@ -2024,7 +2024,7 @@

v1.QuobyteVolumeSource

- + @@ -2086,7 +2086,7 @@

v1.Job

- + @@ -2148,7 +2148,7 @@

unversioned.LabelSelector

- + @@ -2189,7 +2189,7 @@

v1.JobCondition

- + @@ -2258,7 +2258,7 @@

v1.JobList

- + @@ -2316,7 +2316,7 @@

v1.SecretVolumeSource

- + @@ -2364,7 +2364,7 @@

v1.EnvVar

- + @@ -2412,7 +2412,7 @@

v1.ResourceRequirements

- + @@ -2453,7 +2453,7 @@

v1.FlexVolumeSource

- + @@ -2515,7 +2515,7 @@

v1.EnvVarSource

- + @@ -2570,7 +2570,7 @@

v1.PodTemplateSpec

- + @@ -2611,7 +2611,7 @@

v1.KeyToPath

- + @@ -2659,7 +2659,7 @@

v1.AzureDiskVolumeSource

- + @@ -2721,7 +2721,7 @@

v1.VsphereVirtualDiskVolumeSource - + @@ -2762,7 +2762,7 @@

v1.JobSpec

- + @@ -2831,7 +2831,7 @@

v1.DeleteOptions

- + @@ -2893,7 +2893,7 @@

v1.Volume

- + @@ -3088,7 +3088,7 @@

v1.ResourceFieldSelector

- + @@ -3136,7 +3136,7 @@

v1.Probe

- + @@ -3219,7 +3219,7 @@

unversioned.LabelSelectorRequirem - + @@ -3267,7 +3267,7 @@

unversioned.APIResourceList

- + @@ -3322,7 +3322,7 @@

v1.SecretKeySelector

- + @@ -3363,7 +3363,7 @@

unversioned.Status

- + @@ -3450,7 +3450,7 @@

unversioned.APIResource

- + @@ -3498,7 +3498,7 @@

v1.DownwardAPIVolumeFile

- + @@ -3553,7 +3553,7 @@

v1.PodSpec

- + @@ -3699,7 +3699,7 @@

v1.ContainerPort

- + @@ -3761,7 +3761,7 @@

v1.Lifecycle

- + @@ -3802,7 +3802,7 @@

v1.ConfigMapKeySelector

- + @@ -3843,7 +3843,7 @@

v1.Handler

- + @@ -3891,7 +3891,7 @@

v1.GlusterfsVolumeSource

- + @@ -3943,7 +3943,7 @@

v1.RBDVolumeSource

- + @@ -4030,4 +4030,4 @@

any

- \ No newline at end of file + diff --git a/docs/api-reference/extensions/v1beta1/definitions.html b/docs/api-reference/extensions/v1beta1/definitions.html index 04e613fe7e2e6..262b7aed95ca1 100755 --- a/docs/api-reference/extensions/v1beta1/definitions.html +++ b/docs/api-reference/extensions/v1beta1/definitions.html @@ -91,7 +91,7 @@

v1beta1.DeploymentStatus

- + @@ -160,7 +160,7 @@

v1beta1.DaemonSetStatus

- + @@ -215,7 +215,7 @@

v1beta1.Job

- + @@ -277,7 +277,7 @@

v1.Preconditions

- + @@ -311,7 +311,7 @@

v1.ObjectFieldSelector

- + @@ -352,7 +352,7 @@

v1.SELinuxOptions

- + @@ -407,7 +407,7 @@

v1.VolumeMount

- + @@ -462,7 +462,7 @@

v1beta1.IngressSpec

- + @@ -510,7 +510,7 @@

v1beta1.IngressBackend

- + @@ -551,7 +551,7 @@

v1beta1.ReplicaSetList

- + @@ -606,7 +606,7 @@

v1.CephFSVolumeSource

- + @@ -675,7 +675,7 @@

v1beta1.IngressStatus

- + @@ -709,7 +709,7 @@

v1.DownwardAPIVolumeSource

- + @@ -750,7 +750,7 @@

unversioned.StatusCause

- + @@ -802,7 +802,7 @@

v1beta1.ReplicaSetCondition

- + @@ -864,7 +864,7 @@

v1beta1.NetworkPolicyList

- + @@ -922,7 +922,7 @@

v1.GCEPersistentDiskVolumeSource

- + @@ -977,7 +977,7 @@

v1beta1.RollingUpdateDeployment

- + @@ -1018,7 +1018,7 @@

v1beta1.HTTPIngressRuleValue

- + @@ -1055,7 +1055,7 @@

v1.ConfigMapVolumeSource

- + @@ -1103,7 +1103,7 @@

v1.GitRepoVolumeSource

- + @@ -1151,7 +1151,7 @@

v1beta1.JobStatus

- + @@ -1220,7 +1220,7 @@

v1.Capabilities

- + @@ -1261,7 +1261,7 @@

v1.LocalObjectReference

- + @@ -1295,7 +1295,7 @@

v1.ExecAction

- + @@ -1329,7 +1329,7 @@

v1.ObjectMeta

- + @@ -1475,7 +1475,7 @@

v1beta1.ReplicaSetSpec

- + @@ -1530,7 +1530,7 @@

v1beta1.DaemonSetSpec

- + @@ -1571,7 +1571,7 @@

v1beta1.Deployment

- + @@ -1633,7 +1633,7 @@

v1.AzureFileVolumeSource

- + @@ -1685,7 +1685,7 @@

v1.ISCSIVolumeSource

- + @@ -1754,7 +1754,7 @@

v1.EmptyDirVolumeSource

- + @@ -1788,7 +1788,7 @@

v1beta1.IngressList

- + @@ -1843,7 +1843,7 @@

v1beta1.ScaleSpec

- + @@ -1883,7 +1883,7 @@

v1.FlockerVolumeSource

- + @@ -1924,7 +1924,7 @@

v1.PersistentVolumeClaimVolumeSou - + @@ -1965,7 +1965,7 @@

unversioned.ListMeta

- + @@ -2006,7 +2006,7 @@

v1beta1.HorizontalPodAutoscaler

- + @@ -2068,7 +2068,7 @@

unversioned.LabelSelector

- + @@ -2106,7 +2106,7 @@

v1beta1.RollbackConfig

- + @@ -2143,7 +2143,7 @@

v1.SecretVolumeSource

- + @@ -2191,7 +2191,7 @@

v1.EnvVarSource

- + @@ -2246,7 +2246,7 @@

v1.FlexVolumeSource

- + @@ -2308,7 +2308,7 @@

v1beta1.JobCondition

- + @@ -2377,7 +2377,7 @@

v1.LoadBalancerIngress

- + @@ -2418,7 +2418,7 @@

v1beta1.APIVersion

- + @@ -2452,7 +2452,7 @@

v1.AzureDiskVolumeSource

- + @@ -2514,7 +2514,7 @@

v1.KeyToPath

- + @@ -2562,7 +2562,7 @@

v1.VsphereVirtualDiskVolumeSource - + @@ -2603,7 +2603,7 @@

v1.DeleteOptions

- + @@ -2665,7 +2665,7 @@

v1.Volume

- + @@ -2860,7 +2860,7 @@

v1beta1.DaemonSetList

- + @@ -2915,7 +2915,7 @@

v1.ResourceFieldSelector

- + @@ -2963,7 +2963,7 @@

v1.Probe

- + @@ -3046,7 +3046,7 @@

v1beta1.DeploymentSpec

- + @@ -3136,7 +3136,7 @@

unversioned.APIResourceList

- + @@ -3191,7 +3191,7 @@

v1.SecretKeySelector

- + @@ -3236,7 +3236,7 @@

unversioned.APIResource

- + @@ -3284,7 +3284,7 @@

v1.DownwardAPIVolumeFile

- + @@ -3339,7 +3339,7 @@

v1.ContainerPort

- + @@ -3401,7 +3401,7 @@

v1.PodSpec

- + @@ -3547,7 +3547,7 @@

v1.Lifecycle

- + @@ -3588,7 +3588,7 @@

v1.GlusterfsVolumeSource

- + @@ -3636,7 +3636,7 @@

v1.Handler

- + @@ -3684,7 +3684,7 @@

v1beta1.IngressTLS

- + @@ -3725,7 +3725,7 @@

v1beta1.SubresourceReference

- + @@ -3780,7 +3780,7 @@

v1beta1.Scale

- + @@ -3842,7 +3842,7 @@

v1.RBDVolumeSource

- + @@ -3925,7 +3925,7 @@

v1.PhotonPersistentDiskVolumeSourc - + @@ -3963,7 +3963,7 @@

v1beta1.NetworkPolicy

- + @@ -4015,7 +4015,7 @@

versioned.Event

- + @@ -4056,7 +4056,7 @@

v1beta1.ScaleStatus

- + @@ -4101,7 +4101,7 @@

v1beta1.NetworkPolicySpec

- + @@ -4142,7 +4142,7 @@

v1.NFSVolumeSource

- + @@ -4190,7 +4190,7 @@

v1beta1.DeploymentList

- + @@ -4245,7 +4245,7 @@

v1beta1.DeploymentRollback

- + @@ -4307,7 +4307,7 @@

v1.HTTPHeader

- + @@ -4348,7 +4348,7 @@

v1beta1.HorizontalPodAutoscalerS - + @@ -4410,7 +4410,7 @@

v1.FCVolumeSource

- + @@ -4465,7 +4465,7 @@

v1beta1.ThirdPartyResource

- + @@ -4527,7 +4527,7 @@

v1.TCPSocketAction

- + @@ -4561,7 +4561,7 @@

v1beta1.DeploymentStrategy

- + @@ -4602,7 +4602,7 @@

v1beta1.IngressRule

- + @@ -4648,7 +4648,7 @@

v1beta1.JobList

- + @@ -4700,7 +4700,7 @@

v1beta1.NetworkPolicyPeer

- + @@ -4741,7 +4741,7 @@

unversioned.StatusDetails

- + @@ -4803,7 +4803,7 @@

v1.HTTPGetAction

- + @@ -4865,7 +4865,7 @@

v1.LoadBalancerStatus

- + @@ -4896,7 +4896,7 @@

v1beta1.CPUTargetUtilization

- + @@ -4930,7 +4930,7 @@

v1.Container

- + @@ -5083,7 +5083,7 @@

v1.PodSecurityContext

- + @@ -5147,7 +5147,7 @@

v1beta1.NetworkPolicyIngressRule

- + @@ -5188,7 +5188,7 @@

v1.OwnerReference

- + @@ -5250,7 +5250,7 @@

v1beta1.ReplicaSetStatus

- + @@ -5319,7 +5319,7 @@

v1beta1.ReplicaSet

- + @@ -5381,7 +5381,7 @@

v1.HostPathVolumeSource

- + @@ -5415,7 +5415,7 @@

v1beta1.DaemonSet

- + @@ -5477,7 +5477,7 @@

v1.CinderVolumeSource

- + @@ -5525,7 +5525,7 @@

v1.SecurityContext

- + @@ -5601,7 +5601,7 @@

v1.AWSElasticBlockStoreVolumeSourc - + @@ -5656,7 +5656,7 @@

v1beta1.HorizontalPodAutoscalerSpe - + @@ -5711,7 +5711,7 @@

v1.QuobyteVolumeSource

- + @@ -5773,7 +5773,7 @@

v1.EnvVar

- + @@ -5821,7 +5821,7 @@

v1.ResourceRequirements

- + @@ -5862,7 +5862,7 @@

v1.PodTemplateSpec

- + @@ -5900,7 +5900,7 @@

v1beta1.NetworkPolicyPort

- + @@ -5941,7 +5941,7 @@

v1beta1.DeploymentCondition

- + @@ -6010,7 +6010,7 @@

v1beta1.JobSpec

- + @@ -6079,7 +6079,7 @@

unversioned.LabelSelectorRequirem - + @@ -6127,7 +6127,7 @@

unversioned.Status

- + @@ -6210,7 +6210,7 @@

v1beta1.HorizontalPodAutoscalerLis - + @@ -6265,7 +6265,7 @@

v1.ConfigMapKeySelector

- + @@ -6306,7 +6306,7 @@

v1beta1.HTTPIngressPath

- + @@ -6347,7 +6347,7 @@

v1beta1.Ingress

- + @@ -6409,7 +6409,7 @@

v1beta1.ThirdPartyResourceList

- + @@ -6472,4 +6472,4 @@

any

- \ No newline at end of file + diff --git a/docs/api-reference/labels-annotations-taints.md b/docs/api-reference/labels-annotations-taints.md index 0a052bebe212c..492237bd57370 100644 --- a/docs/api-reference/labels-annotations-taints.md +++ b/docs/api-reference/labels-annotations-taints.md @@ -4,4 +4,4 @@ title: Well-Known Labels, Annotations and Taints {% include api-reference-content-moved.md %} -* [Well-Known Labels, Annotations and Taints](/docs/reference/labels-annotations-taints/) \ No newline at end of file +* [Well-Known Labels, Annotations and Taints](/docs/reference/labels-annotations-taints/) diff --git a/docs/reference/federation/extensions/v1beta1/definitions.html b/docs/reference/federation/extensions/v1beta1/definitions.html index e3211ee0c46a0..309ff7cab868d 100755 --- a/docs/reference/federation/extensions/v1beta1/definitions.html +++ b/docs/reference/federation/extensions/v1beta1/definitions.html @@ -9,6 +9,360 @@ Top Level API Objects + +
+

v1.Initializer

+
+

Initializer is information about an initializer that has not yet completed.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

name of the process that is responsible for initializing this object.

true

string

+

v1.LocalObjectReference

@@ -1345,7 +1747,7 @@

v1.LocalObjectReference

- + @@ -1359,7 +1761,7 @@

v1.LocalObjectReference

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

@@ -1379,7 +1781,7 @@

v1.ProjectedVolumeSource

- + @@ -1420,7 +1822,7 @@

v1.ExecAction

- + @@ -1454,7 +1856,7 @@

v1beta1.RollingUpdateDaemonSet

- + @@ -1468,7 +1870,7 @@

v1beta1.RollingUpdateDaemonSet

maxUnavailable

-

The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, 30% of the currently running DaemonSet pods can be stopped for an update at any given time. The update starts by stopping at most 30% of the currently running DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are ready, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.

+

The maximum number of DaemonSet pods that can be unavailable during the update. Value can be an absolute number (ex: 5) or a percentage of total number of DaemonSet pods at the start of the update (ex: 10%). Absolute number is calculated from percentage by rounding up. This cannot be 0. Default value is 1. Example: when this is set to 30%, at most 30% of the total number of nodes that should be running the daemon pod (i.e. status.desiredNumberScheduled) can have their pods stopped for an update at any given time. The update starts by stopping at most 30% of those DaemonSet pods and then brings up new DaemonSet pods in their place. Once the new pods are available, it then proceeds onto other DaemonSet pods, thus ensuring that at least 70% of original number of DaemonSet pods are available at all times during the update.

false

string

@@ -1488,7 +1890,7 @@

v1.ObjectMeta

- + @@ -1513,7 +1915,7 @@

v1.ObjectMeta


If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).

-Applied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency

+Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

false

string

@@ -1547,7 +1949,7 @@

v1.ObjectMeta

resourceVersion

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

-Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency

+Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

@@ -1563,7 +1965,7 @@

v1.ObjectMeta

creationTimestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

-Populated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -1572,7 +1974,7 @@

v1.ObjectMeta

deletionTimestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

-Populated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -1606,6 +2008,15 @@

v1.ObjectMeta

+

initializers

+

An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
+
+When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

+

false

+

v1.Initializers

+ + +

finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

false

@@ -1634,7 +2045,7 @@

v1beta1.ReplicaSetSpec

- + @@ -1648,7 +2059,7 @@

v1beta1.ReplicaSetSpec

replicas

-

Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller

+

Replicas is the number of desired replicas. This is a pointer to distinguish between explicit zero and unspecified. Defaults to 1. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

false

integer (int32)

@@ -1662,14 +2073,14 @@

v1beta1.ReplicaSetSpec

selector

-

Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

+

Selector is a label query over pods that should match the replica count. If the selector is empty, it is defaulted to the labels present on the pod template. Label keys and values that must match in order to be controlled by this replica set. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

v1.LabelSelector

template

-

Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template

+

Template is the object that describes the pod that will be created if insufficient replicas are detected. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

false

v1.PodTemplateSpec

@@ -1679,9 +2090,9 @@

v1beta1.ReplicaSetSpec

-

v1beta1.DaemonSetSpec

+

v1beta1.Deployment

-

DaemonSetSpec is the specification of a daemon set.

+

Deployment enables declarative updates for Pods and ReplicaSets.

@@ -1689,7 +2100,7 @@

v1beta1.DaemonSetSpec

-+ @@ -1702,38 +2113,38 @@

v1beta1.DaemonSetSpec

- - + + - + - - - - + + + + - - + + - + - - + + - + - - + + - + @@ -1741,9 +2152,9 @@

v1beta1.DaemonSetSpec

-

v1beta1.Deployment

+

v1beta1.DaemonSetSpec

-

Deployment enables declarative updates for Pods and ReplicaSets.

+

DaemonSetSpec is the specification of a daemon set.

selector

Selector is a label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

kind

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/api-conventions.md#types-kinds

false

v1.LabelSelector

string

template

Template is the object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template’s node selector (or on every node if no node selector is specified). More info: http://kubernetes.io/docs/user-guide/replication-controller#pod-template

true

v1.PodTemplateSpec

apiVersion

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/api-conventions.md#resources

false

string

updateStrategy

UpdateStrategy to replace existing DaemonSet pods with new pods.

metadata

Standard object metadata.

false

v1beta1.DaemonSetUpdateStrategy

v1.ObjectMeta

minReadySeconds

MinReadySeconds minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).

spec

Specification of the desired behavior of the Deployment.

false

integer (int32)

v1beta1.DeploymentSpec

templateGeneration

A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.

status

Most recently observed status of the Deployment.

false

integer (int64)

v1beta1.DeploymentStatus

@@ -1751,7 +2162,7 @@

v1beta1.Deployment

-+ @@ -1764,43 +2175,54 @@

v1beta1.Deployment

- - + + - + - - + + + + + + + + + - + - - + + - + - - + + - + - - + + - +

kind

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

selector

A label query over pods that are managed by the daemon set. Must match in order to be controlled. If empty, defaulted to labels on Pod template. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

string

v1.LabelSelector

apiVersion

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

template

An object that describes the pod that will be created. The DaemonSet will create exactly one copy of this pod on every node that matches the template’s node selector (or on every node if no node selector is specified). More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller#pod-template

true

v1.PodTemplateSpec

updateStrategy

An update strategy to replace existing DaemonSet pods with new pods.

false

string

v1beta1.DaemonSetUpdateStrategy

metadata

Standard object metadata.

minReadySeconds

The minimum number of seconds for which a newly created DaemonSet pod should be ready without any of its container crashing, for it to be considered available. Defaults to 0 (pod will be considered available as soon as it is ready).

false

v1.ObjectMeta

integer (int32)

spec

Specification of the desired behavior of the Deployment.

templateGeneration

DEPRECATED. A sequence number representing a specific generation of the template. Populated by the system. It can be set only during the creation.

false

v1beta1.DeploymentSpec

integer (int64)

status

Most recently observed status of the Deployment.

revisionHistoryLimit

The number of old history to retain to allow rollback. This is a pointer to distinguish between explicit zero and not specified. Defaults to 10.

false

v1beta1.DeploymentStatus

integer (int32)

+
+
+

types.UID

+

v1.AzureFileVolumeSource

@@ -1813,7 +2235,7 @@

v1.AzureFileVolumeSource

- + @@ -1849,10 +2271,6 @@

v1.AzureFileVolumeSource

-
-
-

types.UID

-

v1.ISCSIVolumeSource

@@ -1865,7 +2283,7 @@

v1.ISCSIVolumeSource

- + @@ -1907,7 +2325,7 @@

v1.ISCSIVolumeSource

fsType

-

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#iscsi

+

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#iscsi

false

string

@@ -1926,6 +2344,27 @@

v1.ISCSIVolumeSource

string array

+ +

chapAuthDiscovery

+

whether support iSCSI Discovery CHAP authentication

+

false

+

boolean

+

false

+ + +

chapAuthSession

+

whether support iSCSI Session CHAP authentication

+

false

+

boolean

+

false

+ + +

secretRef

+

CHAP secret for iSCSI target and initiator authentication

+

false

+

v1.LocalObjectReference

+ + @@ -1941,7 +2380,7 @@

v1beta1.IngressList

- + @@ -1955,21 +2394,21 @@

v1beta1.IngressList

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ListMeta

@@ -1996,7 +2435,7 @@

v1.EmptyDirVolumeSource

- + @@ -2010,7 +2449,14 @@

v1.EmptyDirVolumeSource

medium

-

What type of storage medium should back this directory. The default is "" which means to use the node’s default medium. Must be an empty string (default) or Memory. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

+

What type of storage medium should back this directory. The default is "" which means to use the node’s default medium. Must be an empty string (default) or Memory. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

+

false

+

string

+ + + +

sizeLimit

+

Total amount of local storage required for this EmptyDir volume. The size limit is also applicable for memory medium. The maximum usage on memory medium EmptyDir would be the minimum value between the SizeLimit specified here and the sum of memory limits of all containers in a pod. The default is nil which means that the limit is undefined. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

false

string

@@ -2030,7 +2476,7 @@

v1beta1.ScaleSpec

- + @@ -2064,7 +2510,7 @@

v1.PodAffinityTerm

- + @@ -2085,8 +2531,8 @@

v1.PodAffinityTerm

namespaces

-

namespaces specifies which namespaces the labelSelector applies to (matches against); nil list means "this pod’s namespace," empty list means "all namespaces" The json tag here is not "omitempty" since we need to distinguish nil and empty. See https://golang.org/pkg/encoding/json/#Marshal for more details.

-

true

+

namespaces specifies which namespaces the labelSelector applies to (matches against); null or empty list means "this pod’s namespace"

+

false

string array

@@ -2112,7 +2558,7 @@

v1.EnvFromSource

- + @@ -2160,7 +2606,7 @@

v1.PodAffinity

- + @@ -2201,7 +2647,7 @@

v1.FlockerVolumeSource

- + @@ -2232,9 +2678,9 @@

v1.FlockerVolumeSource

-

v1.ListMeta

+

v1.PersistentVolumeClaimVolumeSource

-

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

+

PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

@@ -2242,7 +2688,7 @@

v1.ListMeta

-+ @@ -2255,27 +2701,27 @@

v1.ListMeta

- - - + + + - - + + + + - -

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

claimName

ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

true

string

resourceVersion

String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency

readOnly

Will force the ReadOnly setting in VolumeMounts. Default false.

false

boolean

false

string

-

v1.PersistentVolumeClaimVolumeSource

+

v1.ListMeta

-

PersistentVolumeClaimVolumeSource references the user’s PVC in the same namespace. This volume finds the bound PV and mounts that volume for the pod. A PersistentVolumeClaimVolumeSource is, essentially, a wrapper around another type of volume that is owned by someone else (the system).

+

ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.

@@ -2283,7 +2729,7 @@

v1.PersistentVolumeClaimVolumeSou

-+ @@ -2296,18 +2742,18 @@

v1.PersistentVolumeClaimVolumeSou

- - - + + + - - - - + + + +

claimName

ClaimName is the name of a PersistentVolumeClaim in the same namespace as the pod using this volume. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims

true

selfLink

SelfLink is a URL representing this object. Populated by the system. Read-only.

false

string

readOnly

Will force the ReadOnly setting in VolumeMounts. Default false.

false

boolean

resourceVersion

String that identifies the server’s internal version of this object that can be used by clients to determine when objects have changed. Value must be treated as opaque by clients and passed unmodified back to the server. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

@@ -2321,7 +2767,7 @@

v1beta1.RollbackConfig

- + @@ -2335,7 +2781,7 @@

v1beta1.RollbackConfig

revision

-

The revision to rollback to. If set to 0, rollbck to the last revision.

+

The revision to rollback to. If set to 0, rollback to the last revision.

false

integer (int64)

@@ -2358,7 +2804,7 @@

v1.SecretVolumeSource

- + @@ -2372,7 +2818,7 @@

v1.SecretVolumeSource

secretName

-

Name of the secret in the pod’s namespace to use. More info: http://kubernetes.io/docs/user-guide/volumes#secrets

+

Name of the secret in the pod’s namespace to use. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

string

@@ -2413,7 +2859,7 @@

v1.FlexVolumeSource

- + @@ -2475,7 +2921,7 @@

v1.EnvVarSource

- + @@ -2489,7 +2935,7 @@

v1.EnvVarSource

fieldRef

-

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.podIP.

+

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels, metadata.annotations, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP.

false

v1.ObjectFieldSelector

@@ -2530,7 +2976,7 @@

v1.LoadBalancerIngress

- + @@ -2571,7 +3017,7 @@

v1.AzureDiskVolumeSource

- + @@ -2618,6 +3064,13 @@

v1.AzureDiskVolumeSource

boolean

false

+ +

kind

+

Expected values Shared: mulitple blob disks per storage account Dedicated: single blob disk per storage account Managed: azure managed data disk (only in managed availability set). defaults to shared

+

false

+

v1.AzureDataDiskKind

+ + @@ -2633,7 +3086,7 @@

v1.KeyToPath

- + @@ -2678,7 +3131,7 @@

v1beta1.DaemonSetUpdateStrategy

- + @@ -2699,7 +3152,7 @@

v1beta1.DaemonSetUpdateStrategy

rollingUpdate

-

Rolling update config params. Present only if DaemonSetUpdateStrategy = RollingUpdate.

+

Rolling update config params. Present only if type = "RollingUpdate".

false

v1beta1.RollingUpdateDaemonSet

@@ -2719,7 +3172,7 @@

v1.VsphereVirtualDiskVolumeSource - + @@ -2745,6 +3198,20 @@

v1.VsphereVirtualDiskVolumeSource

string

+ +

storagePolicyName

+

Storage Policy Based Management (SPBM) profile name.

+

false

+

string

+ + + +

storagePolicyID

+

Storage Policy Based Management (SPBM) profile ID associated with the StoragePolicyName.

+

false

+

string

+ + @@ -2760,7 +3227,7 @@

v1.DeleteOptions

- + @@ -2774,14 +3241,14 @@

v1.DeleteOptions

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

@@ -2809,7 +3276,7 @@

v1.DeleteOptions

propagationPolicy

-

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

+

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

v1.DeletionPropagation

@@ -2819,9 +3286,9 @@

v1.DeleteOptions

-

v1.Volume

+

v1beta1.DaemonSetList

-

Volume represents a named volume in a pod that may be accessed by any container in the pod.

+

DaemonSetList is a collection of daemon sets.

@@ -2829,7 +3296,7 @@

v1.Volume

-+ @@ -2842,36 +3309,91 @@

v1.Volume

- - - + + + - - + + + + + + + + + + + + + + + + + + + + + +

name

Volume’s name. Must be a DNS_LABEL and unique within the pod. More info: http://kubernetes.io/docs/user-guide/identifiers#names

true

kind

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/api-conventions.md#types-kinds

false

string

hostPath

HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath

apiVersion

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/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ListMeta

items

A list of daemon sets.

true

v1beta1.DaemonSet array

+ +
+
+

v1.Volume

+
+

Volume represents a named volume in a pod that may be accessed by any container in the pod.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + - + - + - + @@ -2885,42 +3407,42 @@

v1.Volume

- + - + - + - + - + - + @@ -2934,7 +3456,7 @@

v1.Volume

- + @@ -3023,59 +3545,18 @@

v1.Volume

- -
NameDescriptionRequiredSchemaDefault

name

Volume’s name. Must be a DNS_LABEL and unique within the pod. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

true

string

hostPath

HostPath represents a pre-existing file or directory on the host machine that is directly exposed to the container. This is generally used for system agents or other privileged things that are allowed to see the host machine. Most containers will NOT need this. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

false

v1.HostPathVolumeSource

emptyDir

EmptyDir represents a temporary directory that shares a pod’s lifetime. More info: http://kubernetes.io/docs/user-guide/volumes#emptydir

EmptyDir represents a temporary directory that shares a pod’s lifetime. More info: https://kubernetes.io/docs/concepts/storage/volumes#emptydir

false

v1.EmptyDirVolumeSource

gcePersistentDisk

GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#gcepersistentdisk

GCEPersistentDisk represents a GCE Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#gcepersistentdisk

false

v1.GCEPersistentDiskVolumeSource

awsElasticBlockStore

AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore

AWSElasticBlockStore represents an AWS Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

v1.AWSElasticBlockStoreVolumeSource

secret

Secret represents a secret that should populate this volume. More info: http://kubernetes.io/docs/user-guide/volumes#secrets

Secret represents a secret that should populate this volume. More info: https://kubernetes.io/docs/concepts/storage/volumes#secret

false

v1.SecretVolumeSource

nfs

NFS represents an NFS mount on the host that shares a pod’s lifetime More info: http://kubernetes.io/docs/user-guide/volumes#nfs

NFS represents an NFS mount on the host that shares a pod’s lifetime More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

v1.NFSVolumeSource

iscsi

ISCSI represents an ISCSI Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: http://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

ISCSI represents an ISCSI Disk resource that is attached to a kubelet’s host machine and then exposed to the pod. More info: https://releases.k8s.io/HEAD/examples/volumes/iscsi/README.md

false

v1.ISCSIVolumeSource

glusterfs

Glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

Glusterfs represents a Glusterfs mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md

false

v1.GlusterfsVolumeSource

persistentVolumeClaim

PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#persistentvolumeclaims

PersistentVolumeClaimVolumeSource represents a reference to a PersistentVolumeClaim in the same namespace. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#persistentvolumeclaims

false

v1.PersistentVolumeClaimVolumeSource

rbd

RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

RBD represents a Rados Block Device mount on the host that shares a pod’s lifetime. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md

false

v1.RBDVolumeSource

cinder

Cinder represents a cinder volume attached and mounted on kubelets host machine More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

Cinder represents a cinder volume attached and mounted on kubelets host machine More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

v1.CinderVolumeSource

v1.PortworxVolumeSource

- -
-
-

v1beta1.DaemonSetList

-
-

DaemonSetList is a collection of daemon sets.

-
- ------- - - - - - - - - - - - - + + - + - - + + - - - - - - - - - - - - - - - + @@ -3093,7 +3574,7 @@

v1.ResourceFieldSelector

-+ @@ -3141,7 +3622,7 @@

v1.VolumeProjection

-+ @@ -3189,7 +3670,7 @@

v1.Probe

-+ @@ -3224,14 +3705,14 @@

v1.Probe

- + - + @@ -3272,7 +3753,7 @@

v1.WeightedPodAffinityTerm

-+ @@ -3313,7 +3794,7 @@

v1beta1.DeploymentSpec

-+ @@ -3403,7 +3884,7 @@

v1.SecretKeySelector

-+ @@ -3417,7 +3898,7 @@

v1.SecretKeySelector

- + @@ -3455,7 +3936,7 @@

v1.DownwardAPIVolumeFile

-+ @@ -3498,68 +3979,6 @@

v1.DownwardAPIVolumeFile

NameDescriptionRequiredSchemaDefault

kind

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

scaleIO

ScaleIO represents a ScaleIO persistent volume attached and mounted on Kubernetes nodes.

false

string

v1.ScaleIOVolumeSource

apiVersion

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

storageos

StorageOS represents a StorageOS volume attached and mounted on Kubernetes nodes.

false

string

metadata

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

false

v1.ListMeta

items

Items is a list of daemon sets.

true

v1beta1.DaemonSet array

v1.StorageOSVolumeSource

initialDelaySeconds

Number of seconds after the container has started before liveness probes are initiated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes

Number of seconds after the container has started before liveness probes are initiated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

timeoutSeconds

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes

Number of seconds after which the probe times out. Defaults to 1 second. Minimum value is 1. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

integer (int32)

name

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

-
-
-

v1.ContainerPort

-
-

ContainerPort represents a network port in a single container.

-
- ------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDescriptionRequiredSchemaDefault

name

If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.

false

string

hostPort

Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.

false

integer (int32)

containerPort

Number of port to expose on the pod’s IP address. This must be a valid port number, 0 < x < 65536.

true

integer (int32)

protocol

Protocol for port. Must be UDP or TCP. Defaults to "TCP".

false

string

hostIP

What host IP to bind the external port to.

false

string

-

v1.PodSpec

@@ -3572,7 +3991,7 @@

v1.PodSpec

- + @@ -3586,28 +4005,28 @@

v1.PodSpec

volumes

-

List of volumes that can be mounted by containers belonging to the pod. More info: http://kubernetes.io/docs/user-guide/volumes

+

List of volumes that can be mounted by containers belonging to the pod. More info: https://kubernetes.io/docs/concepts/storage/volumes

false

v1.Volume array

initContainers

-

List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers

+

List of initialization containers belonging to the pod. Init containers are executed in order prior to containers being started. If any init container fails, the pod is considered to have failed and is handled according to its restartPolicy. The name for an init container or normal container must be unique among all containers. Init containers may not have Lifecycle actions, Readiness probes, or Liveness probes. The resourceRequirements of an init container are taken into account during scheduling by finding the highest request/limit for each resource type, and then using the max of of that value or the sum of the normal containers. Limits are applied to init containers in a similar fashion. Init containers cannot currently be added or removed. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/

false

v1.Container array

containers

-

List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers

+

List of containers belonging to the pod. Containers cannot currently be added or removed. There must be at least one container in a Pod. Cannot be updated.

true

v1.Container array

restartPolicy

-

Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: http://kubernetes.io/docs/user-guide/pod-states#restartpolicy

+

Restart policy for all containers within the pod. One of Always, OnFailure, Never. Default to Always. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy

false

string

@@ -3635,14 +4054,14 @@

v1.PodSpec

nodeSelector

-

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: http://kubernetes.io/docs/user-guide/node-selection/README

+

NodeSelector is a selector which must be true for the pod to fit on a node. Selector which must match a node’s labels for the pod to be scheduled on that node. More info: https://kubernetes.io/docs/concepts/configuration/assign-pod-node/

false

object

serviceAccountName

-

ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: http://releases.k8s.io/HEAD/docs/design/service_accounts.md

+

ServiceAccountName is the name of the ServiceAccount to use to run this pod. More info: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/

false

string

@@ -3698,7 +4117,7 @@

v1.PodSpec

imagePullSecrets

-

ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: http://kubernetes.io/docs/user-guide/images#specifying-imagepullsecrets-on-a-pod

+

ImagePullSecrets is an optional list of references to secrets in the same namespace to use for pulling any of the images used by this PodSpec. If specified, these secrets will be passed to individual puller implementations for them to use. For example, in the case of docker, only DockerConfig type secrets are honored. More info: https://kubernetes.io/docs/concepts/containers/images#specifying-imagepullsecrets-on-a-pod

false

v1.LocalObjectReference array

@@ -3738,6 +4157,89 @@

v1.PodSpec

v1.Toleration array

+ +

hostAliases

+

HostAliases is an optional list of hosts and IPs that will be injected into the pod’s hosts file if specified. This is only valid for non-hostNetwork pods.

+

false

+

v1.HostAlias array

+ + + +

priorityClassName

+

If specified, indicates the pod’s priority. "SYSTEM" is a special keyword which indicates the highest priority. Any other name must be defined by creating a PriorityClass object with that name. If not specified, the pod priority will be default or zero if there is no default.

+

false

+

string

+ + + +

priority

+

The priority value. Various system components use this field to find the priority of the pod. When Priority Admission Controller is enabled, it prevents users from setting this field. The admission controller populates this field from PriorityClassName. The higher the value, the higher the priority.

+

false

+

integer (int32)

+ + + + + +
+
+

v1.ContainerPort

+
+

ContainerPort represents a network port in a single container.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

If specified, this must be an IANA_SVC_NAME and unique within the pod. Each named port in a pod must have a unique name. Name for the port that can be referred to by services.

false

string

hostPort

Number of port to expose on the host. If specified, this must be a valid port number, 0 < x < 65536. If HostNetwork is specified, this must match ContainerPort. Most containers do not need this.

false

integer (int32)

containerPort

Number of port to expose on the pod’s IP address. This must be a valid port number, 0 < x < 65536.

true

integer (int32)

protocol

Protocol for port. Must be UDP or TCP. Defaults to "TCP".

false

string

hostIP

What host IP to bind the external port to.

false

string

@@ -3753,7 +4255,7 @@

v1.Lifecycle

- + @@ -3767,14 +4269,14 @@

v1.Lifecycle

postStart

-

PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details

+

PostStart is called immediately after a container is created. If the handler fails, the container is terminated and restarted according to its restart policy. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

preStop

-

PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: http://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks#hook-details

+

PreStop is called immediately before a container is terminated. The container is terminated after the handler completes. The reason for termination is passed to the handler. Regardless of the outcome of the handler, the container is eventually terminated. Other management of the container blocks until the hook completes. More info: https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/#container-hooks

false

v1.Handler

@@ -3794,7 +4296,7 @@

v1.GlusterfsVolumeSource

- + @@ -3808,21 +4310,21 @@

v1.GlusterfsVolumeSource

endpoints

-

EndpointsName is the endpoint name that details Glusterfs topology. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

+

EndpointsName is the endpoint name that details Glusterfs topology. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

path

-

Path is the Glusterfs volume path. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

+

Path is the Glusterfs volume path. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

true

string

readOnly

-

ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

+

ReadOnly here will force the Glusterfs volume to be mounted with read-only permissions. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/glusterfs/README.md#create-a-pod

false

boolean

false

@@ -3842,7 +4344,7 @@

v1.Handler

- + @@ -3890,7 +4392,7 @@

v1.Toleration

- + @@ -3952,7 +4454,7 @@

v1beta1.IngressTLS

- + @@ -3993,7 +4495,7 @@

v1.StatusCause

- + @@ -4045,7 +4547,7 @@

v1beta1.Scale

- + @@ -4059,35 +4561,35 @@

v1beta1.Scale

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object metadata; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata.

+

Standard object metadata; More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata.

false

v1.ObjectMeta

spec

-

defines the behavior of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status.

+

defines the behavior of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status.

false

v1beta1.ScaleSpec

status

-

current status of the scale. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status. Read-only.

+

current status of the scale. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status. Read-only.

false

v1beta1.ScaleStatus

@@ -4107,7 +4609,7 @@

v1.RBDVolumeSource

- + @@ -4121,56 +4623,56 @@

v1.RBDVolumeSource

monitors

-

A collection of Ceph monitors. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

A collection of Ceph monitors. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string array

image

-

The rados image name. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

The rados image name. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

true

string

fsType

-

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#rbd

+

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#rbd

false

string

pool

-

The rados pool name. Default is rbd. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it.

+

The rados pool name. Default is rbd. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

user

-

The rados user name. Default is admin. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

The rados user name. Default is admin. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

keyring

-

Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

Keyring is the path to key ring for RBDUser. Default is /etc/ceph/keyring. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

string

secretRef

-

SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

SecretRef is name of the authentication secret for RBDUser. If provided overrides keyring. Default is nil. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

v1.LocalObjectReference

readOnly

-

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: http://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

+

ReadOnly here will force the ReadOnly setting in VolumeMounts. Defaults to false. More info: https://releases.k8s.io/HEAD/examples/volumes/rbd/README.md#how-to-use-it

false

boolean

false

@@ -4180,12 +4682,101 @@

v1.RBDVolumeSource

-

v1.ConfigMapProjection

-
-

Adapts a ConfigMap into a projected volume.

-
+

v1.ConfigMapProjection

+
+

Adapts a ConfigMap into a projected volume.

+
+
+

The contents of the target ConfigMap’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

false

v1.KeyToPath array

optional

Specify whether the ConfigMap or it’s keys must be defined

false

boolean

false

+ +
+
+

v1.PhotonPersistentDiskVolumeSource

+
+

Represents a Photon Controller persistent disk resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pdID

ID that identifies Photon Controller persistent disk

true

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

+ +
+
+

v1.ScaleIOVolumeSource

-

The contents of the target ConfigMap’s Data field will be presented in a projected volume as files using the keys in the Data field as the file names, unless the items element is populated with specific mappings of keys to paths. Note that this is identical to a configmap volume source without the default mode.

+

ScaleIOVolumeSource represents a persistent ScaleIO volume

@@ -4193,7 +4784,7 @@

v1.ConfigMapProjection

-+ @@ -4206,22 +4797,71 @@

v1.ConfigMapProjection

- - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - + - - + + + + + + + + + + + + + + + + + + + + + + + @@ -4231,9 +4871,9 @@

v1.ConfigMapProjection

-

v1.PhotonPersistentDiskVolumeSource

+

v1.Initializers

-

Represents a Photon Controller persistent disk resource.

+

Initializers tracks the progress of initialization.

name

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

gateway

The host address of the ScaleIO API Gateway.

true

string

system

The name of the storage system as configured in ScaleIO.

true

string

secretRef

SecretRef references to the secret for ScaleIO user and other sensitive information. If this is not provided, Login operation will fail.

true

v1.LocalObjectReference

sslEnabled

Flag to enable/disable SSL communication with Gateway, default false

false

boolean

false

protectionDomain

The name of the Protection Domain for the configured storage (defaults to "default").

false

string

items

If unspecified, each key-value pair in the Data field of the referenced ConfigMap will be projected into the volume as a file whose name is the key and content is the value. If specified, the listed keys will be projected into the specified paths, and unlisted keys will not be present. If a key is specified which is not present in the ConfigMap, the volume setup will error unless it is marked optional. Paths must be relative and may not contain the .. path or start with ...

storagePool

The Storage Pool associated with the protection domain (defaults to "default").

false

v1.KeyToPath array

string

optional

Specify whether the ConfigMap or it’s keys must be defined

storageMode

Indicates whether the storage for a volume should be thick or thin (defaults to "thin").

false

string

volumeName

The name of a volume already created in the ScaleIO system that is associated with this volume source.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

@@ -4241,7 +4881,7 @@

v1.PhotonPersistentDiskVolumeSourc

-+ @@ -4254,17 +4894,17 @@

v1.PhotonPersistentDiskVolumeSourc

- - + + - + - - + + - + @@ -4282,7 +4922,7 @@

v1.Status

-+ @@ -4296,28 +4936,28 @@

v1.Status

- + - + - + - + @@ -4365,7 +5005,7 @@

v1beta1.ScaleStatus

-+ @@ -4393,7 +5033,7 @@

v1beta1.ScaleStatus

- + @@ -4413,7 +5053,7 @@

v1.NFSVolumeSource

-+ @@ -4427,21 +5067,21 @@

v1.NFSVolumeSource

- + - + - + @@ -4461,7 +5101,7 @@

v1beta1.DeploymentList

-+ @@ -4475,14 +5115,14 @@

v1beta1.DeploymentList

- + - + @@ -4516,7 +5156,7 @@

v1beta1.DeploymentRollback

-+ @@ -4530,14 +5170,14 @@

v1beta1.DeploymentRollback

- + - + @@ -4578,7 +5218,7 @@

v1.HTTPHeader

-+ @@ -4619,7 +5259,7 @@

v1.FCVolumeSource

-+ @@ -4674,7 +5314,7 @@

v1.PodAntiAffinity

-+ @@ -4709,9 +5349,9 @@

v1.DeletionPropagation

-

v1.TCPSocketAction

+

v1beta1.DeploymentStrategy

-

TCPSocketAction describes an action based on opening a socket

+

DeploymentStrategy describes how to replace existing pods with new ones.

pdID

ID that identifies Photon Controller persistent disk

pending

Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

true

string

v1.Initializer array

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

result

If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

false

string

v1.Status

kind

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

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/api-conventions.md#types-kinds

false

string

apiVersion

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

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/api-conventions.md#resources

false

string

metadata

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

status

Status of the operation. One of: "Success" or "Failure". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

string

targetSelector

label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: http://kubernetes.io/docs/user-guide/labels#label-selectors

label selector for pods that should match the replicas count. This is a serializated version of both map-based and more expressive set-based selectors. This is done to avoid introspection in the clients. The string will be in the same format as the query-param syntax. If the target type only supports map-based selectors, both this field and map-based selector field are populated. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#label-selectors

false

string

server

Server is the hostname or IP address of the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs

Server is the hostname or IP address of the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

path

Path that is exported by the NFS server. More info: http://kubernetes.io/docs/user-guide/volumes#nfs

Path that is exported by the NFS server. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

true

string

readOnly

ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: http://kubernetes.io/docs/user-guide/volumes#nfs

ReadOnly here will force the NFS export to be mounted with read-only permissions. Defaults to false. More info: https://kubernetes.io/docs/concepts/storage/volumes#nfs

false

boolean

false

kind

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

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/api-conventions.md#types-kinds

false

string

apiVersion

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

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/api-conventions.md#resources

false

string

kind

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

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/api-conventions.md#types-kinds

false

string

apiVersion

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

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/api-conventions.md#resources

false

string

@@ -4719,7 +5359,7 @@

v1.TCPSocketAction

-+ @@ -4732,20 +5372,27 @@

v1.TCPSocketAction

- - - + + + + + + + + + +

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

type

Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

false

string

rollingUpdate

Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

false

v1beta1.RollingUpdateDeployment

-

v1beta1.DeploymentStrategy

+

v1.TCPSocketAction

-

DeploymentStrategy describes how to replace existing pods with new ones.

+

TCPSocketAction describes an action based on opening a socket

@@ -4753,7 +5400,7 @@

v1beta1.DeploymentStrategy

-+ @@ -4766,17 +5413,17 @@

v1beta1.DeploymentStrategy

- - - + + + - - + + - + @@ -4794,7 +5441,7 @@

v1beta1.IngressRule

-+ @@ -4809,10 +5456,10 @@

v1beta1.IngressRule

@@ -4840,7 +5487,7 @@

v1.HTTPGetAction

-+ @@ -4902,7 +5549,7 @@

v1.StatusDetails

-+ @@ -4930,7 +5577,14 @@

v1.StatusDetails

- + + + + + + + + @@ -4964,7 +5618,7 @@

v1.LoadBalancerStatus

-+ @@ -4998,7 +5652,7 @@

v1.Container

-+ @@ -5019,21 +5673,21 @@

v1.Container

- - + + - + - + @@ -5054,7 +5708,7 @@

v1.Container

- + @@ -5068,7 +5722,7 @@

v1.Container

- + @@ -5082,14 +5736,14 @@

v1.Container

- + - + @@ -5117,14 +5771,14 @@

v1.Container

- + - + @@ -5165,7 +5819,7 @@

v1.PodSecurityContext

-+ @@ -5229,7 +5883,7 @@

v1.OwnerReference

-+ @@ -5250,7 +5904,7 @@

v1.OwnerReference

- + @@ -5298,7 +5952,7 @@

v1beta1.ReplicaSetStatus

-+ @@ -5312,7 +5966,7 @@

v1beta1.ReplicaSetStatus

- + @@ -5367,7 +6021,7 @@

v1.APIResource

-+ @@ -5381,7 +6035,14 @@

v1.APIResource

- + + + + + + + + @@ -5414,6 +6075,13 @@

v1.APIResource

+ + + + + + +

type

Type of deployment. Can be "Recreate" or "RollingUpdate". Default is RollingUpdate.

false

port

Number or name of the port to access on the container. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME.

true

string

rollingUpdate

Rolling update config params. Present only if DeploymentStrategyType = RollingUpdate.

host

Optional: Host name to connect to, defaults to the pod IP.

false

v1beta1.RollingUpdateDeployment

string

host

Host is the fully qualified domain name of a network host, as defined by RFC 3986. Note the following deviations from the "host" part of the URI as defined in the RFC: 1. IPs are not allowed. Currently an IngressRuleValue can only apply to the
- IP in the Spec of the parent Ingress.
+ IP in the Spec of the parent Ingress.
2. The : delimiter is not respected because ports are not allowed.
- Currently the port of an Ingress is implicitly :80 for http and
- :443 for https.
+ Currently the port of an Ingress is implicitly :80 for http and
+ :443 for https.
Both these may change in the future. Incoming requests are matched against the host before the IngressRuleValue. If the host is unspecified, the Ingress routes all traffic based on the specified IngressRuleValue.

false

string

kind

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

uid

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

image

Docker image name. More info: http://kubernetes.io/docs/user-guide/images

false

Docker image name. More info: https://kubernetes.io/docs/concepts/containers/images

true

string

command

Entrypoint array. Not executed within a shell. The docker image’s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands

Entrypoint array. Not executed within a shell. The docker image’s ENTRYPOINT is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

args

Arguments to the entrypoint. The docker image’s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/containers#containers-and-commands

Arguments to the entrypoint. The docker image’s CMD is used if this is not provided. Variable references $(VAR_NAME) are expanded using the container’s environment. If a variable cannot be resolved, the reference in the input string will be unchanged. The $(VAR_NAME) syntax can be escaped with a double $$, ie: $$(VAR_NAME). Escaped references will never be expanded, regardless of whether the variable exists or not. Cannot be updated. More info: https://kubernetes.io/docs/tasks/inject-data-application/define-command-argument-container/#running-a-command-in-a-shell

false

string array

envFrom

List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. An invalid key will prevent the container from starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.

List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.

false

v1.EnvFromSource array

resources

Compute Resources required by this container. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/persistent-volumes#resources

Compute Resources required by this container. Cannot be updated. More info: https://kubernetes.io/docs/concepts/storage/persistent-volumes#resources

false

v1.ResourceRequirements

livenessProbe

Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes

Periodic probe of container liveness. Container will be restarted if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

readinessProbe

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/pod-states#container-probes

Periodic probe of container service readiness. Container will be removed from service endpoints if the probe fails. Cannot be updated. More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#container-probes

false

v1.Probe

imagePullPolicy

Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/images#updating-images

Image pull policy. One of Always, Never, IfNotPresent. Defaults to Always if :latest tag is specified, or IfNotPresent otherwise. Cannot be updated. More info: https://kubernetes.io/docs/concepts/containers/images#updating-images

false

string

securityContext

Security options the pod should run with. More info: http://releases.k8s.io/HEAD/docs/design/security_context.md

Security options the pod should run with. More info: https://kubernetes.io/docs/concepts/policy/security-context/ More info: https://git.k8s.io/community/contributors/design-proposals/security_context.md

false

v1.SecurityContext

kind

Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

true

string

replicas

Replicas is the most recently oberved number of replicas. More info: http://kubernetes.io/docs/user-guide/replication-controller#what-is-a-replication-controller

Replicas is the most recently oberved number of replicas. More info: https://kubernetes.io/docs/concepts/workloads/controllers/replicationcontroller/#what-is-a-replicationcontroller

true

integer (int32)

name

name is the name of the resource.

name is the plural name of the resource.

true

string

singularName

singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

true

string

string array

categories

categories is a list of the grouped resources this resource belongs to (e.g. all)

false

string array

@@ -5429,7 +6097,7 @@

v1.NodeSelectorRequirement

- + @@ -5477,7 +6145,7 @@

v1beta1.ReplicaSet

- + @@ -5491,35 +6159,35 @@

v1beta1.ReplicaSet

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

If the Labels of a ReplicaSet are empty, they are defaulted to be the same as the Pod(s) that the ReplicaSet manages. Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

-

Spec defines the specification of the desired behavior of the ReplicaSet. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Spec defines the specification of the desired behavior of the ReplicaSet. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.ReplicaSetSpec

status

-

Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Status is the most recently observed status of the ReplicaSet. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.ReplicaSetStatus

@@ -5539,7 +6207,7 @@

v1.HostPathVolumeSource

- + @@ -5553,7 +6221,7 @@

v1.HostPathVolumeSource

path

-

Path of the directory on the host. More info: http://kubernetes.io/docs/user-guide/volumes#hostpath

+

Path of the directory on the host. More info: https://kubernetes.io/docs/concepts/storage/volumes#hostpath

true

string

@@ -5576,7 +6244,7 @@

v1.SecretProjection

- + @@ -5590,7 +6258,7 @@

v1.SecretProjection

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

@@ -5624,7 +6292,7 @@

v1beta1.DaemonSet

- + @@ -5638,35 +6306,35 @@

v1beta1.DaemonSet

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

-

Spec defines the desired behavior of this daemon set. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

The desired behavior of this daemon set. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.DaemonSetSpec

status

-

Status is the current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

The current status of this daemon set. This data may be out of date by some window of time. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.DaemonSetStatus

@@ -5686,7 +6354,7 @@

v1.CinderVolumeSource

- + @@ -5700,21 +6368,21 @@

v1.CinderVolumeSource

volumeID

-

volume id used to identify the volume in cinder More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

+

volume id used to identify the volume in cinder More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

true

string

fsType

-

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

+

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

string

readOnly

-

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: http://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

+

Optional: Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts. More info: https://releases.k8s.io/HEAD/examples/mysql-cinder-pd/README.md

false

boolean

false

@@ -5734,7 +6402,7 @@

v1.SecurityContext

- + @@ -5806,7 +6474,7 @@

v1.AWSElasticBlockStoreVolumeSourc - + @@ -5820,14 +6488,14 @@

v1.AWSElasticBlockStoreVolumeSourc

volumeID

-

Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore

+

Unique ID of the persistent disk resource in AWS (Amazon EBS volume). More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

true

string

fsType

-

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore

+

Filesystem type of the volume that you want to mount. Tip: Ensure that the filesystem type is supported by the host operating system. Examples: "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified. More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

string

@@ -5841,7 +6509,7 @@

v1.AWSElasticBlockStoreVolumeSourc

readOnly

-

Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: http://kubernetes.io/docs/user-guide/volumes#awselasticblockstore

+

Specify "true" to force and set the ReadOnly property in VolumeMounts to "true". If omitted, the default is "false". More info: https://kubernetes.io/docs/concepts/storage/volumes#awselasticblockstore

false

boolean

false

@@ -5861,7 +6529,7 @@

v1.QuobyteVolumeSource

- + @@ -5920,7 +6588,7 @@

v1.WatchEvent

- + @@ -5961,7 +6629,7 @@

v1.LabelSelectorRequirement

- + @@ -6009,7 +6677,7 @@

v1.EnvVar

- + @@ -6057,7 +6725,7 @@

v1.ResourceRequirements

- + @@ -6071,14 +6739,14 @@

v1.ResourceRequirements

limits

-

Limits describes the maximum amount of compute resources allowed. More info: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

+

Limits describes the maximum amount of compute resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

requests

-

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: http://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

+

Requests describes the minimum amount of compute resources required. If Requests is omitted for a container, it defaults to Limits if that is explicitly specified, otherwise to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/

false

object

@@ -6086,6 +6754,47 @@

v1.ResourceRequirements

+
+
+

v1.HostAlias

+
+

HostAlias holds the mapping between IP and hostnames that will be injected as an entry in the pod’s hosts file.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

ip

IP address of the host file entry.

false

string

hostnames

Hostnames for the above IP address.

false

string array

+

v1.PodTemplateSpec

@@ -6098,7 +6807,7 @@

v1.PodTemplateSpec

- + @@ -6112,14 +6821,14 @@

v1.PodTemplateSpec

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

-

Specification of the desired behavior of the pod. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Specification of the desired behavior of the pod. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1.PodSpec

@@ -6139,7 +6848,7 @@

v1.NodeSelector

- + @@ -6179,7 +6888,7 @@

v1beta1.DeploymentCondition

- + @@ -6251,7 +6960,7 @@

v1.ConfigMapEnvSource

- + @@ -6265,7 +6974,7 @@

v1.ConfigMapEnvSource

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

@@ -6280,6 +6989,68 @@

v1.ConfigMapEnvSource

+
+
+

v1.StorageOSVolumeSource

+
+

Represents a StorageOS persistent volume resource.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

volumeName

VolumeName is the human-readable name of the StorageOS volume. Volume names are only unique within a namespace.

false

string

volumeNamespace

VolumeNamespace specifies the scope of the volume within StorageOS. If no namespace is specified then the Pod’s namespace will be used. This allows the Kubernetes name scoping to be mirrored within StorageOS for tighter integration. Set VolumeName to any name to override the default behaviour. Set to "default" if you are not using namespaces within StorageOS. Namespaces that do not pre-exist within StorageOS will be created.

false

string

fsType

Filesystem type to mount. Must be a filesystem type supported by the host operating system. Ex. "ext4", "xfs", "ntfs". Implicitly inferred to be "ext4" if unspecified.

false

string

readOnly

Defaults to false (read/write). ReadOnly here will force the ReadOnly setting in VolumeMounts.

false

boolean

false

secretRef

SecretRef specifies the secret to use for obtaining the StorageOS API credentials. If not specified, default values will be attempted.

false

v1.LocalObjectReference

+

v1.NodeAffinity

@@ -6292,7 +7063,7 @@

v1.NodeAffinity

- + @@ -6321,6 +7092,10 @@

v1.NodeAffinity

+
+
+

v1.AzureDataDiskKind

+

v1.PreferredSchedulingTerm

@@ -6333,7 +7108,7 @@

v1.PreferredSchedulingTerm

- + @@ -6374,7 +7149,7 @@

v1.ConfigMapKeySelector

- + @@ -6388,7 +7163,7 @@

v1.ConfigMapKeySelector

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

@@ -6422,7 +7197,7 @@

v1beta1.HTTPIngressPath

- + @@ -6463,7 +7238,7 @@

v1beta1.Ingress

- + @@ -6477,35 +7252,35 @@

v1beta1.Ingress

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

-

Spec is the desired state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Spec is the desired state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.IngressSpec

status

-

Status is the current state of the Ingress. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Status is the current state of the Ingress. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1beta1.IngressStatus

@@ -6529,8 +7304,8 @@

any

- \ No newline at end of file + diff --git a/docs/reference/federation/extensions/v1beta1/operations.html b/docs/reference/federation/extensions/v1beta1/operations.html index d651fabb6f610..7d24e9285f2e2 100755 --- a/docs/reference/federation/extensions/v1beta1/operations.html +++ b/docs/reference/federation/extensions/v1beta1/operations.html @@ -9,6 +9,360 @@ Operations + - \ No newline at end of file + diff --git a/docs/reference/federation/v1beta1/definitions.html b/docs/reference/federation/federation/v1beta1/definitions.html similarity index 60% rename from docs/reference/federation/v1beta1/definitions.html rename to docs/reference/federation/federation/v1beta1/definitions.html index 53d19367759db..3e88e4c94f2ae 100755 --- a/docs/reference/federation/v1beta1/definitions.html +++ b/docs/reference/federation/federation/v1beta1/definitions.html @@ -9,6 +9,360 @@ Top Level API Objects + +
+

v1.Initializers

+
+

Initializers tracks the progress of initialization.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pending

Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

true

v1.Initializer array

result

If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

false

v1.Status

+ +
+
+

v1.Initializer

+
+

Initializer is information about an initializer that has not yet completed.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

name of the process that is responsible for initializing this object.

true

string

+

v1.LocalObjectReference

@@ -454,7 +890,7 @@

v1.LocalObjectReference

- + @@ -468,7 +904,7 @@

v1.LocalObjectReference

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

@@ -488,7 +924,7 @@

v1.Status

- + @@ -502,28 +938,28 @@

v1.Status

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

status

-

Status of the operation. One of: "Success" or "Failure". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

string

@@ -571,7 +1007,7 @@

v1beta1.ClusterSpec

- + @@ -609,7 +1045,7 @@

v1.WatchEvent

- + @@ -638,6 +1074,75 @@

v1.WatchEvent

+
+
+

v1beta1.ClusterCondition

+
+

ClusterCondition describes current state of a cluster.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

type

Type of cluster condition, Complete or Failed.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastProbeTime

Last time the condition was checked.

false

string

lastTransitionTime

Last time the condition transit from one status to another.

false

string

reason

(brief) reason for the condition’s last transition.

false

string

message

Human readable message indicating details about last transition.

false

string

+

v1.ObjectMeta

@@ -650,7 +1155,7 @@

v1.ObjectMeta

- + @@ -675,7 +1180,7 @@

v1.ObjectMeta


If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).

-Applied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency

+Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

false

string

@@ -709,7 +1214,7 @@

v1.ObjectMeta

resourceVersion

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

-Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency

+Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

@@ -725,7 +1230,7 @@

v1.ObjectMeta

creationTimestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

-Populated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -734,7 +1239,7 @@

v1.ObjectMeta

deletionTimestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

-Populated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -768,6 +1273,15 @@

v1.ObjectMeta

+

initializers

+

An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
+
+When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

+

false

+

v1.Initializers

+ + +

finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

false

@@ -796,7 +1310,7 @@

v1.OwnerReference

- + @@ -817,7 +1331,7 @@

v1.OwnerReference

kind

-

Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

true

string

@@ -855,9 +1369,9 @@

v1.OwnerReference

-

v1beta1.ClusterCondition

+

v1.APIResource

-

ClusterCondition describes current state of a cluster.

+

APIResource specifies the name of a resource and whether it is namespaced.

@@ -865,7 +1379,7 @@

v1beta1.ClusterCondition

-+ @@ -878,77 +1392,15 @@

v1beta1.ClusterCondition

- - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

type

Type of cluster condition, Complete or Failed.

name

name is the plural name of the resource.

true

string

status

Status of the condition, one of True, False, Unknown.

true

string

lastProbeTime

Last time the condition was checked.

false

string

lastTransitionTime

Last time the condition transit from one status to another.

false

string

reason

(brief) reason for the condition’s last transition.

false

string

message

Human readable message indicating details about last transition.

false

string

- -
-
-

v1.APIResource

-
-

APIResource specifies the name of a resource and whether it is namespaced.

-
- ------- - - - - - - - - - - - - - + + @@ -981,6 +1433,13 @@

v1.APIResource

+ + + + + + +
NameDescriptionRequiredSchemaDefault

name

name is the name of the resource.

singularName

singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

true

string

string array

categories

categories is a list of the grouped resources this resource belongs to (e.g. all)

false

string array

@@ -1000,7 +1459,7 @@

v1.StatusCause

- + @@ -1056,7 +1515,7 @@

v1beta1.Cluster

- + @@ -1070,21 +1529,21 @@

v1beta1.Cluster

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

@@ -1118,8 +1577,8 @@

any

- \ No newline at end of file + diff --git a/docs/reference/federation/v1beta1/operations.html b/docs/reference/federation/federation/v1beta1/operations.html similarity index 61% rename from docs/reference/federation/v1beta1/operations.html rename to docs/reference/federation/federation/v1beta1/operations.html index 28cc47802c583..6dd2e9efaad41 100755 --- a/docs/reference/federation/v1beta1/operations.html +++ b/docs/reference/federation/federation/v1beta1/operations.html @@ -9,6 +9,360 @@ Operations + - \ No newline at end of file + diff --git a/docs/reference/federation/index.md b/docs/reference/federation/index.md index 1cadb737e7342..8cfd620d4b66d 100644 --- a/docs/reference/federation/index.md +++ b/docs/reference/federation/index.md @@ -4,14 +4,15 @@ redirect_from: - "/docs/federation/api-reference/" - "/docs/federation/api-reference/index.md" --- +# API Reference Federation API server supports the following group versions: -* federation/v1beta1: [operations](/docs/reference/federation/v1beta1/operations/), [model definitions](/docs/reference/federation/v1beta1/definitions/) -* v1: [operations](/docs/reference/federation/v1/operations/), [model definitions]/docs/reference/federation/v1/definitions/) -* extensions/v1beta1: [operations](/docs/reference/federation/extensions/v1beta1/operations/), [model definitions](/docs/reference/federation/extensions/v1beta1/definitions/) +* federation/v1beta1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/federation/v1beta1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/federation/v1beta1/definitions.html) +* v1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/v1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/v1/definitions.html) +* extensions/v1beta1: [operations](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/extensions/v1beta1/operations.html), [model definitions](https://htmlpreview.github.io/?https://github.com/kubernetes/kubernetes/blob/HEAD/federation/docs/api-reference/extensions/v1beta1/definitions.html) -[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/docs/federation/api-reference/README.md?pixel)]() +[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/federation/docs/api-reference/README.md?pixel)]() diff --git a/docs/reference/federation/v1/definitions.html b/docs/reference/federation/v1/definitions.html index 30a662d14bf4d..c6e8591b73775 100755 --- a/docs/reference/federation/v1/definitions.html +++ b/docs/reference/federation/v1/definitions.html @@ -9,6 +9,360 @@ Top Level API Objects + +
+

v1.Initializers

+
+

Initializers tracks the progress of initialization.

+
+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

pending

Pending is a list of initializers that must execute in order before this object is visible. When the last pending initializer is removed, and no failing result is set, the initializers struct will be set to nil and the object is considered as initialized and visible to all clients.

true

v1.Initializer array

result

If result is set with the Failure field, the object will be persisted to storage and then deleted, ensuring that other clients can observe the deletion.

false

v1.Status

+

v1.Preconditions

@@ -280,7 +675,7 @@

v1.Preconditions

- + @@ -314,7 +709,7 @@

v1.Status

- + @@ -328,28 +723,28 @@

v1.Status

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

status

-

Status of the operation. One of: "Success" or "Failure". More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

string

@@ -397,7 +792,7 @@

v1.ServiceStatus

- + @@ -431,7 +826,7 @@

v1.Secret

- + @@ -445,28 +840,28 @@

v1.Secret

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

data

-

Data contains the secret data. Each key must be a valid DNS_SUBDOMAIN or leading dot followed by valid DNS_SUBDOMAIN. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4

+

Data contains the secret data. Each key must consist of alphanumeric characters, -, _ or .. The serialized form of the secret data is a base64 encoded string, representing the arbitrary (possibly non-string) data value here. Described in https://tools.ietf.org/html/rfc4648#section-4

false

object

@@ -497,7 +892,7 @@

v1.WatchEvent

- + @@ -538,7 +933,7 @@

v1.Event

- + @@ -552,21 +947,21 @@

v1.Event

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

true

v1.ObjectMeta

@@ -642,7 +1037,7 @@

v1.LoadBalancerIngress

- + @@ -687,7 +1082,7 @@

v1.NamespaceStatus

- + @@ -701,7 +1096,7 @@

v1.NamespaceStatus

phase

-

Phase is the current lifecycle phase of the namespace. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#phases

+

Phase is the current lifecycle phase of the namespace. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#phases

false

string

@@ -721,7 +1116,7 @@

v1.ServiceList

- + @@ -735,21 +1130,21 @@

v1.ServiceList

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

@@ -776,7 +1171,7 @@

v1.NamespaceSpec

- + @@ -790,7 +1185,7 @@

v1.NamespaceSpec

finalizers

-

Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: http://releases.k8s.io/HEAD/docs/design/namespaces.md#finalizers

+

Finalizers is an opaque list of values that must be empty to permanently remove object from storage. More info: https://git.k8s.io/community/contributors/design-proposals/namespaces.md#finalizers

false

v1.FinalizerName array

@@ -810,7 +1205,7 @@

v1.Service

- + @@ -824,35 +1219,35 @@

v1.Service

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

spec

-

Spec defines the behavior of a service. http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Spec defines the behavior of a service. https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1.ServiceSpec

status

-

Most recently observed status of the service. Populated by the system. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status

+

Most recently observed status of the service. Populated by the system. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

false

v1.ServiceStatus

@@ -878,7 +1273,7 @@

v1.ConfigMapList

- + @@ -892,21 +1287,21 @@

v1.ConfigMapList

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ListMeta

@@ -933,7 +1328,7 @@

v1.DeleteOptions

- + @@ -947,14 +1342,14 @@

v1.DeleteOptions

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

@@ -982,7 +1377,7 @@

v1.DeleteOptions

propagationPolicy

-

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

+

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

v1.DeletionPropagation

@@ -1002,7 +1397,7 @@

v1.StatusDetails

- + @@ -1030,7 +1425,14 @@

v1.StatusDetails

kind

-

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

The kind attribute of the resource associated with the status StatusReason. On some operations may differ from the requested resource Kind. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

+

false

+

string

+ + + +

uid

+

UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

false

string

@@ -1064,7 +1466,7 @@

v1.ConfigMap

- + @@ -1078,28 +1480,28 @@

v1.ConfigMap

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard object’s metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+

Standard object’s metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

v1.ObjectMeta

data

-

Data contains the configuration data. Each key must be a valid DNS_SUBDOMAIN with an optional leading dot.

+

Data contains the configuration data. Each key must consist of alphanumeric characters, -, _ or ..

false

object

@@ -1107,6 +1509,40 @@

v1.ConfigMap

+
+
+

v1.Initializer

+
+

Initializer is information about an initializer that has not yet completed.

+
+ +++++++ + + + + + + + + + + + + + + + + + + +
NameDescriptionRequiredSchemaDefault

name

name of the process that is responsible for initializing this object.

true

string

+

v1.ObjectReference

@@ -1119,7 +1555,7 @@

v1.ObjectReference

- + @@ -1133,28 +1569,28 @@

v1.ObjectReference

kind

-

Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

string

namespace

-

Namespace of the referent. More info: http://kubernetes.io/docs/user-guide/namespaces

+

Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/

false

string

name

-

Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names

+

Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names

false

string

uid

-

UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

+

UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids

false

string

@@ -1168,7 +1604,7 @@

v1.ObjectReference

resourceVersion

-

Specific resourceVersion to which this reference is made, if any. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency

+

Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

@@ -1195,7 +1631,7 @@

v1.LoadBalancerStatus

- + @@ -1229,7 +1665,7 @@

v1.SecretList

- + @@ -1243,28 +1679,28 @@

v1.SecretList

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

items

-

Items is a list of secret objects. More info: http://kubernetes.io/docs/user-guide/secrets

+

Items is a list of secret objects. More info: https://kubernetes.io/docs/concepts/configuration/secret

true

v1.Secret array

@@ -1288,7 +1724,7 @@

v1.ServicePort

- + @@ -1323,14 +1759,14 @@

v1.ServicePort

targetPort

-

Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod’s container ports. If this is not specified, the value of the port field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the port field. More info: http://kubernetes.io/docs/user-guide/services#defining-a-service

+

Number or name of the port to access on the pods targeted by the service. Number must be in the range 1 to 65535. Name must be an IANA_SVC_NAME. If this is a string, it will be looked up as a named port in the target Pod’s container ports. If this is not specified, the value of the port field is used (an identity map). This field is ignored for services with clusterIP=None, and should be omitted or set equal to the port field. More info: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service

false

string

nodePort

-

The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: http://kubernetes.io/docs/user-guide/services#type—nodeport

+

The port on each node on which this service is exposed when type=NodePort or LoadBalancer. Usually assigned by the system. If specified, it will be allocated to the service if unused or else creation of the service will fail. Default is to auto-allocate a port if the ServiceType of this Service requires one. More info: https://kubernetes.io/docs/concepts/services-networking/service/#type-nodeport

false

integer (int32)

@@ -1350,7 +1786,7 @@

v1.OwnerReference

- + @@ -1371,7 +1807,7 @@

v1.OwnerReference

kind

-

Kind of the referent. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

true

string

@@ -1419,7 +1855,7 @@

v1.ObjectMeta

- + @@ -1444,7 +1880,7 @@

v1.ObjectMeta


If this field is specified and the generated name exists, the server will NOT return a 409 - instead, it will either return 201 Created or 500 with Reason ServerTimeout indicating a unique name could not be found in the time allotted, and the client should retry (optionally after the time indicated in the Retry-After header).

-Applied only if Name is not specified. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#idempotency

+Applied only if Name is not specified. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency

false

string

@@ -1478,7 +1914,7 @@

v1.ObjectMeta

resourceVersion

An opaque value that represents the internal version of this object that can be used by clients to determine when objects have changed. May be used for optimistic concurrency, change detection, and the watch operation on a resource or set of resources. Clients must treat these values as opaque and passed unmodified back to the server. They may only be valid for a particular resource or set of resources.

-Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#concurrency-control-and-consistency

+Populated by the system. Read-only. Value must be treated as opaque by clients and . More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency

false

string

@@ -1494,7 +1930,7 @@

v1.ObjectMeta

creationTimestamp

CreationTimestamp is a timestamp representing the server time when this object was created. It is not guaranteed to be set in happens-before order across separate operations. Clients may not set this value. It is represented in RFC3339 form and is in UTC.

-Populated by the system. Read-only. Null for lists. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system. Read-only. Null for lists. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -1503,7 +1939,7 @@

v1.ObjectMeta

deletionTimestamp

DeletionTimestamp is RFC 3339 date and time at which this resource will be deleted. This field is set by the server when a graceful deletion is requested by the user, and is not directly settable by a client. The resource is expected to be deleted (no longer visible from resource lists, and not reachable by name) after the time in this field. Once set, this value may not be unset or be set further into the future, although it may be shortened or the resource may be deleted prior to this time. For example, a user may request that a pod is deleted in 30 seconds. The Kubelet will react by sending a graceful termination signal to the containers in the pod. After that 30 seconds, the Kubelet will send a hard termination signal (SIGKILL) to the container and after cleanup, remove the pod from the API. In the presence of network partitions, this object may still exist after this timestamp, until an administrator or automated process can determine the resource is fully terminated. If not set, graceful deletion of the object has not been requested.

-Populated by the system when a graceful deletion is requested. Read-only. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata

+Populated by the system when a graceful deletion is requested. Read-only. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata

false

string

@@ -1537,6 +1973,15 @@

v1.ObjectMeta

+

initializers

+

An initializer is a controller which enforces some system invariant at object creation time. This field is a list of initializers that have not yet acted on this object. If nil or empty, this object has been completely initialized. Otherwise, the object is considered uninitialized and is hidden (in list/watch and get calls) from clients that haven’t explicitly asked to observe uninitialized objects.
+
+When an object is created, the system will populate this list with the current set of initializers. Only privileged users may set or modify this list. Once it is empty, it may not be modified further by any user.

+

false

+

v1.Initializers

+ + +

finalizers

Must be empty before the object is deleted from the registry. Each entry is an identifier for the responsible component that will remove the entry from the list. If the deletionTimestamp of the object is non-nil, entries in this list can only be removed.

false

@@ -1565,7 +2010,7 @@

v1.EventList

- + @@ -1579,21 +2024,21 @@

v1.EventList

kind

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

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/api-conventions.md#types-kinds

false

string

apiVersion

-

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: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#resources

+

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/api-conventions.md#resources

false

string

metadata

-

Standard list metadata. More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds

+

Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds

false

v1.ListMeta

@@ -1620,7 +2065,7 @@

v1.APIResource

- + @@ -1634,7 +2079,14 @@

v1.APIResource

name

-

name is the name of the resource.

+

name is the plural name of the resource.

+

true

+

string

+ + + +

singularName

+

singularName is the singular name of the resource. This allows clients to handle plural and singular opaquely. The singularName is more correct for reporting status on a single item and both singular and plural are allowed from the kubectl CLI interface.

true

string

@@ -1667,6 +2119,13 @@

v1.APIResource

string array

+ +

categories

+

categories is a list of the grouped resources this resource belongs to (e.g. all)

+

false

+

string array

+ + @@ -1682,7 +2141,7 @@

v1.ServiceSpec

- + @@ -1696,49 +2155,42 @@

v1.ServiceSpec

ports

-

The list of ports that are exposed by this service. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies

+

The list of ports that are exposed by this service. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

false

v1.ServicePort array

selector

-

Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#overview

+

Route service traffic to pods with label keys and values matching this selector. If empty or not present, the service is assumed to have an external process managing its endpoints, which Kubernetes will not modify. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/

false

object

clusterIP

-

clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies

+

clusterIP is the IP address of the service and is usually assigned randomly by the master. If an address is specified manually and is not in use by others, it will be allocated to the service; otherwise, creation of the service will fail. This field can not be changed through updates. Valid values are "None", empty string (""), or a valid IP address. "None" can be specified for headless services when proxying is not required. Only applies to types ClusterIP, NodePort, and LoadBalancer. Ignored if type is ExternalName. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

false

string

type

-

type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified externalName. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: http://kubernetes.io/docs/user-guide/services#overview

+

type determines how the Service is exposed. Defaults to ClusterIP. Valid options are ExternalName, ClusterIP, NodePort, and LoadBalancer. "ExternalName" maps to the specified externalName. "ClusterIP" allocates a cluster-internal IP address for load-balancing to endpoints. Endpoints are determined by the selector or if that is not specified, by manual construction of an Endpoints object. If clusterIP is "None", no virtual IP is allocated and the endpoints are published as a set of endpoints rather than a stable IP. "NodePort" builds on ClusterIP and allocates a port on every node which routes to the clusterIP. "LoadBalancer" builds on NodePort and creates an external load-balancer (if supported in the current cloud) which routes to the clusterIP. More info: https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services

false

string

externalIPs

-

externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system. A previous form of this functionality exists as the deprecatedPublicIPs field. When using this field, callers should also clear the deprecatedPublicIPs field.

-

false

-

string array

- - - -

deprecatedPublicIPs

-

deprecatedPublicIPs is deprecated and replaced by the externalIPs field with almost the exact same semantics. This field is retained in the v1 API for compatibility until at least 8/20/2016. It will be removed from any new API revisions. If both deprecatedPublicIPs and externalIPs are set, deprecatedPublicIPs is used.

+

externalIPs is a list of IP addresses for which nodes in the cluster will also accept traffic for this service. These IPs are not managed by Kubernetes. The user is responsible for ensuring that traffic arrives at a node with this IP. A common example is external load-balancers that are not part of the Kubernetes system.

false

string array

sessionAffinity

-

Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: http://kubernetes.io/docs/user-guide/services#virtual-ips-and-service-proxies

+

Supports "ClientIP" and "None". Used to maintain session affinity. Enable client IP based session affinity. Must be ClientIP or None. Defaults to None. More info: https://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

false

string

@@ -1752,7 +2204,7 @@

v1.ServiceSpec

loadBalancerSourceRanges

-

If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: http://kubernetes.io/docs/user-guide/services-firewalls

+

If specified and supported by the platform, this will restrict traffic through the cloud-provider load-balancer will be restricted to the specified client IPs. This field will be ignored if the cloud-provider does not support the feature." More info: https://kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/

false

string array

@@ -1764,6 +2216,20 @@

v1.ServiceSpec

string

+ +

externalTrafficPolicy

+

externalTrafficPolicy denotes if this Service desires to route external traffic to node-local or cluster-wide endpoints. "Local" preserves the client source IP and avoids a second hop for LoadBalancer and Nodeport type services, but risks potentially imbalanced traffic spreading. "Cluster" obscures the client source IP and may cause a second hop to another node, but should have good overall load-spreading.

+

false

+

string

+ + + +

healthCheckNodePort

+

healthCheckNodePort specifies the healthcheck nodePort for the service. If not specified, HealthCheckNodePort is created by the service api backend with the allocated nodePort. Will use user-specified nodePort value if specified by the client. Only effects when Type is set to LoadBalancer and ExternalTrafficPolicy is set to Local.

+

false

+

integer (int32)

+ + @@ -1779,7 +2245,7 @@

v1.EventSource

- + @@ -1824,7 +2290,7 @@

v1.StatusCause

- + @@ -1876,8 +2342,8 @@

any

- \ No newline at end of file + diff --git a/docs/reference/federation/v1/operations.html b/docs/reference/federation/v1/operations.html index 23b37f45bfa55..bd587020eb445 100755 --- a/docs/reference/federation/v1/operations.html +++ b/docs/reference/federation/v1/operations.html @@ -9,6 +9,360 @@ Operations +
-

delete collection of Namespace

-
-
-
DELETE /api/v1/namespaces
-
-
-
-

Parameters

- -------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TypeNameDescriptionRequiredSchemaDefault

QueryParameter

pretty

If true, then the output is pretty printed.

false

string

QueryParameter

labelSelector

A selector to restrict the list of returned objects by their labels. Defaults to everything.

false

string

QueryParameter

fieldSelector

A selector to restrict the list of returned objects by their fields. Defaults to everything.

false

string

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

boolean

QueryParameter

resourceVersion

When specified with a watch call, shows changes that occur after that particular version of a resource. Defaults to changes from the beginning of history. When specified for list: - if unset, then the result is returned from remote storage based on quorum-read flag; - if it’s 0, then we simply return what we currently have in cache, no guarantee; - if set to non zero, then the result is at least as fresh as given rv.

false

string

QueryParameter

timeoutSeconds

Timeout for the list/watch call.

false

integer (int32)

- -
-
-

Responses

- ----- - - - - - - - - - - - - - - -
HTTP CodeDescriptionSchema

200

success

v1.Status

- -
-
-

Consumes

-
-
    -
  • -

    /

    -
  • -
-
-
-
-

Produces

-
-
    -
  • -

    application/json

    -
  • -
  • -

    application/yaml

    -
  • -
  • -

    application/vnd.kubernetes.protobuf

    -
  • -
-
-
-
-

Tags

-
-
    -
  • -

    apiv1

    -
  • -
-
-
-
-

create a Namespace

@@ -690,7 +925,7 @@

create a Namespace

-

Parameters

+

Parameters

@@ -698,7 +933,7 @@

Parameters

-+ @@ -732,12 +967,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -757,7 +992,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -767,7 +1002,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -783,7 +1018,7 @@

    Produces

-

Tags

+

Tags

  • @@ -801,7 +1036,7 @@

    list or watch objects of kin

-

Parameters

+

Parameters

@@ -809,7 +1044,7 @@

Parameters

-+ @@ -848,6 +1083,14 @@

Parameters

+ + + + + + + + @@ -883,12 +1126,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -908,7 +1151,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -918,7 +1161,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -940,7 +1183,7 @@

    Produces

-

Tags

+

Tags

  • @@ -958,7 +1201,7 @@

    delete collection of ConfigMap

-

Parameters

+

Parameters

@@ -966,7 +1209,7 @@

Parameters

-+ @@ -1005,6 +1248,14 @@

Parameters

+ + + + + + + + @@ -1040,12 +1291,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -1065,7 +1316,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1075,7 +1326,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1091,7 +1342,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1109,7 +1360,7 @@

    create a ConfigMap

-

Parameters

+

Parameters

@@ -1117,7 +1368,7 @@

Parameters

-+ @@ -1159,12 +1410,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -1184,7 +1435,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1194,7 +1445,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1210,7 +1461,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1228,7 +1479,7 @@

    read the specified ConfigMap

-

Parameters

+

Parameters

@@ -1236,7 +1487,7 @@

Parameters

-+ @@ -1294,12 +1545,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -1319,7 +1570,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1329,7 +1580,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1345,7 +1596,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1363,7 +1614,7 @@

    replace the specified ConfigMap

-

Parameters

+

Parameters

@@ -1371,7 +1622,7 @@

Parameters

-+ @@ -1421,12 +1672,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -1446,7 +1697,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1456,7 +1707,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1472,7 +1723,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1490,7 +1741,7 @@

    delete a ConfigMap

-

Parameters

+

Parameters

@@ -1498,7 +1749,7 @@

Parameters

-+ @@ -1546,7 +1797,7 @@

Parameters

- + @@ -1572,12 +1823,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

propagationPolicy

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

string

-+ @@ -1597,7 +1848,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1607,7 +1858,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1623,7 +1874,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1641,7 +1892,7 @@

    partially update the specifie

-

Parameters

+

Parameters

@@ -1649,7 +1900,7 @@

Parameters

-+ @@ -1699,12 +1950,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -1724,7 +1975,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1740,7 +1991,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1756,7 +2007,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1774,7 +2025,7 @@

    list or watch objects of kind Ev

-

Parameters

+

Parameters

@@ -1782,7 +2033,7 @@

Parameters

-+ @@ -1821,6 +2072,14 @@

Parameters

+ + + + + + + + @@ -1856,12 +2115,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -1881,7 +2140,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -1891,7 +2150,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -1913,7 +2172,7 @@

    Produces

-

Tags

+

Tags

  • @@ -1931,7 +2190,7 @@

    delete collection of Event

-

Parameters

+

Parameters

@@ -1939,7 +2198,7 @@

Parameters

-+ @@ -1978,6 +2237,14 @@

Parameters

+ + + + + + + + @@ -2013,12 +2280,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -2038,7 +2305,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2048,7 +2315,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2064,7 +2331,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2082,7 +2349,7 @@

    create an Event

-

Parameters

+

Parameters

@@ -2090,7 +2357,7 @@

Parameters

-+ @@ -2132,12 +2399,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -2157,7 +2424,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2167,7 +2434,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2183,7 +2450,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2201,7 +2468,7 @@

    read the specified Event

-

Parameters

+

Parameters

@@ -2209,7 +2476,7 @@

Parameters

-+ @@ -2267,12 +2534,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -2292,7 +2559,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2302,7 +2569,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2318,7 +2585,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2336,7 +2603,7 @@

    replace the specified Event

-

Parameters

+

Parameters

@@ -2344,7 +2611,7 @@

Parameters

-+ @@ -2394,12 +2661,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -2419,7 +2686,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2429,7 +2696,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2445,7 +2712,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2463,7 +2730,7 @@

    delete an Event

-

Parameters

+

Parameters

@@ -2471,7 +2738,7 @@

Parameters

-+ @@ -2519,7 +2786,7 @@

Parameters

- + @@ -2545,12 +2812,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

propagationPolicy

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

string

-+ @@ -2570,7 +2837,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2580,7 +2847,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2596,7 +2863,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2614,7 +2881,7 @@

    partially update the specified Ev

-

Parameters

+

Parameters

@@ -2622,7 +2889,7 @@

Parameters

-+ @@ -2672,12 +2939,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -2697,7 +2964,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2713,7 +2980,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2729,7 +2996,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2747,7 +3014,7 @@

    list or watch objects of kind Sec

-

Parameters

+

Parameters

@@ -2755,7 +3022,7 @@

Parameters

-+ @@ -2794,6 +3061,14 @@

Parameters

+ + + + + + + + @@ -2829,12 +3104,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -2854,7 +3129,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -2864,7 +3139,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -2886,7 +3161,7 @@

    Produces

-

Tags

+

Tags

  • @@ -2904,7 +3179,7 @@

    delete collection of Secret

-

Parameters

+

Parameters

@@ -2912,7 +3187,7 @@

Parameters

-+ @@ -2951,6 +3226,14 @@

Parameters

+ + + + + + + + @@ -2986,12 +3269,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -3011,7 +3294,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3021,7 +3304,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3037,7 +3320,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3055,7 +3338,7 @@

    create a Secret

-

Parameters

+

Parameters

@@ -3063,7 +3346,7 @@

Parameters

-+ @@ -3105,12 +3388,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -3130,7 +3413,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3140,7 +3423,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3156,7 +3439,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3174,7 +3457,7 @@

    read the specified Secret

-

Parameters

+

Parameters

@@ -3182,7 +3465,7 @@

Parameters

-+ @@ -3240,12 +3523,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -3265,7 +3548,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3275,7 +3558,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3291,7 +3574,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3309,7 +3592,7 @@

    replace the specified Secret

-

Parameters

+

Parameters

@@ -3317,7 +3600,7 @@

Parameters

-+ @@ -3367,12 +3650,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -3392,7 +3675,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3402,7 +3685,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3418,7 +3701,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3436,7 +3719,7 @@

    delete a Secret

-

Parameters

+

Parameters

@@ -3444,7 +3727,7 @@

Parameters

-+ @@ -3492,7 +3775,7 @@

Parameters

- + @@ -3518,12 +3801,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

propagationPolicy

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

string

-+ @@ -3543,7 +3826,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3553,7 +3836,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3569,7 +3852,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3587,7 +3870,7 @@

    partially update the specified S

-

Parameters

+

Parameters

@@ -3595,7 +3878,7 @@

Parameters

-+ @@ -3645,12 +3928,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -3670,7 +3953,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3686,7 +3969,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3702,7 +3985,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3720,7 +4003,7 @@

    list or watch objects of kind Se

-

Parameters

+

Parameters

@@ -3728,7 +4011,7 @@

Parameters

-+ @@ -3767,6 +4050,14 @@

Parameters

+ + + + + + + + @@ -3802,12 +4093,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -3827,7 +4118,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3837,7 +4128,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -3859,7 +4150,7 @@

    Produces

-

Tags

+

Tags

  • @@ -3877,7 +4168,7 @@

    delete collection of Service

-

Parameters

+

Parameters

@@ -3885,7 +4176,7 @@

Parameters

-+ @@ -3924,6 +4215,14 @@

Parameters

+ + + + + + + + @@ -3959,12 +4258,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -3984,7 +4283,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -3994,7 +4293,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4010,7 +4309,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4028,7 +4327,7 @@

    create a Service

-

Parameters

+

Parameters

@@ -4036,7 +4335,7 @@

Parameters

-+ @@ -4078,12 +4377,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4103,7 +4402,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4113,7 +4412,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4129,7 +4428,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4147,7 +4446,7 @@

    read the specified Service

-

Parameters

+

Parameters

@@ -4155,7 +4454,7 @@

Parameters

-+ @@ -4213,12 +4512,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4238,7 +4537,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4248,7 +4547,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4264,7 +4563,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4282,7 +4581,7 @@

    replace the specified Service

-

Parameters

+

Parameters

@@ -4290,7 +4589,7 @@

Parameters

-+ @@ -4340,12 +4639,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4365,7 +4664,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4375,7 +4674,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4391,7 +4690,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4409,7 +4708,7 @@

    delete a Service

-

Parameters

+

Parameters

@@ -4417,7 +4716,7 @@

Parameters

-+ @@ -4465,7 +4764,7 @@

Parameters

- + @@ -4491,12 +4790,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

propagationPolicy

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

string

-+ @@ -4516,7 +4815,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4526,7 +4825,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4542,7 +4841,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4560,7 +4859,7 @@

    partially update the specified

-

Parameters

+

Parameters

@@ -4568,7 +4867,7 @@

Parameters

-+ @@ -4618,12 +4917,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4643,7 +4942,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4659,7 +4958,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4675,7 +4974,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4693,7 +4992,7 @@

    read status of the specified Serv

-

Parameters

+

Parameters

@@ -4701,7 +5000,7 @@

Parameters

-+ @@ -4743,12 +5042,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4768,7 +5067,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4778,7 +5077,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4794,7 +5093,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4812,7 +5111,7 @@

    replace status of the specifie

-

Parameters

+

Parameters

@@ -4820,7 +5119,7 @@

Parameters

-+ @@ -4870,12 +5169,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -4895,7 +5194,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -4905,7 +5204,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -4921,7 +5220,7 @@

    Produces

-

Tags

+

Tags

  • @@ -4939,7 +5238,7 @@

    partially update stat

-

Parameters

+

Parameters

@@ -4947,7 +5246,7 @@

Parameters

-+ @@ -4997,12 +5296,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5022,7 +5321,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5038,7 +5337,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5054,7 +5353,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5072,7 +5371,7 @@

    read the specified Namespace

-

Parameters

+

Parameters

@@ -5080,7 +5379,7 @@

Parameters

-+ @@ -5130,12 +5429,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5155,7 +5454,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5165,7 +5464,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5181,7 +5480,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5199,7 +5498,7 @@

    replace the specified Namespace

-

Parameters

+

Parameters

@@ -5207,7 +5506,7 @@

Parameters

-+ @@ -5249,12 +5548,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5274,7 +5573,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5284,7 +5583,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5300,7 +5599,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5318,7 +5617,7 @@

    delete a Namespace

-

Parameters

+

Parameters

@@ -5326,7 +5625,7 @@

Parameters

-+ @@ -5374,7 +5673,7 @@

Parameters

- + @@ -5392,12 +5691,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

propagationPolicy

Whether and how garbage collection will be performed. Defaults to Default. Either this field or OrphanDependents may be set, but not both.

Whether and how garbage collection will be performed. Either this field or OrphanDependents may be set, but not both. The default policy is decided by the existing finalizer set in the metadata.finalizers and the resource-specific default policy.

false

string

-+ @@ -5417,7 +5716,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5427,7 +5726,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5443,7 +5742,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5461,7 +5760,7 @@

    partially update the specifie

-

Parameters

+

Parameters

@@ -5469,7 +5768,7 @@

Parameters

-+ @@ -5511,12 +5810,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5536,7 +5835,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5552,7 +5851,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5568,7 +5867,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5586,7 +5885,7 @@

    replace finalize of the sp

-

Parameters

+

Parameters

@@ -5594,7 +5893,7 @@

Parameters

-+ @@ -5636,12 +5935,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5661,7 +5960,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5671,7 +5970,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5687,7 +5986,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5705,7 +6004,7 @@

    read status of the specified Na

-

Parameters

+

Parameters

@@ -5713,7 +6012,7 @@

Parameters

-+ @@ -5747,12 +6046,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5772,7 +6071,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5782,7 +6081,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5798,7 +6097,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5816,7 +6115,7 @@

    replace status of the specif

-

Parameters

+

Parameters

@@ -5824,7 +6123,7 @@

Parameters

-+ @@ -5866,12 +6165,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -5891,7 +6190,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -5901,7 +6200,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -5917,7 +6216,7 @@

    Produces

-

Tags

+

Tags

  • @@ -5935,7 +6234,7 @@

    partially update st

-

Parameters

+

Parameters

@@ -5943,7 +6242,7 @@

Parameters

-+ @@ -5985,12 +6284,12 @@

Parameters

-

Responses

+

Responses

-+ @@ -6010,7 +6309,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6026,7 +6325,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6042,7 +6341,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6060,7 +6359,7 @@

    list or watch objects of kind S

-

Parameters

+

Parameters

@@ -6068,7 +6367,7 @@

Parameters

-+ @@ -6107,6 +6406,14 @@

Parameters

+ + + + + + + + @@ -6134,12 +6441,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6159,7 +6466,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6169,7 +6476,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6191,7 +6498,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6209,7 +6516,7 @@

    list or watch objects of kind

-

Parameters

+

Parameters

@@ -6217,7 +6524,7 @@

Parameters

-+ @@ -6256,6 +6563,14 @@

Parameters

+ + + + + + + + @@ -6283,12 +6598,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6308,7 +6623,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6318,7 +6633,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6340,7 +6655,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6358,7 +6673,7 @@

    watch individual chang

-

Parameters

+

Parameters

@@ -6366,7 +6681,7 @@

Parameters

-+ @@ -6405,6 +6720,14 @@

Parameters

+ + + + + + + + @@ -6432,12 +6755,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6457,7 +6780,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6467,7 +6790,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6489,7 +6812,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6507,7 +6830,7 @@

    watch individual changes t

-

Parameters

+

Parameters

@@ -6515,7 +6838,7 @@

Parameters

-+ @@ -6554,6 +6877,14 @@

Parameters

+ + + + + + + + @@ -6581,12 +6912,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6606,7 +6937,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6616,7 +6947,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6638,7 +6969,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6656,7 +6987,7 @@

    watch individual chang

-

Parameters

+

Parameters

@@ -6664,7 +6995,7 @@

Parameters

-+ @@ -6703,6 +7034,14 @@

Parameters

+ + + + + + + + @@ -6730,12 +7069,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6755,7 +7094,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6765,7 +7104,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6787,7 +7126,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6805,7 +7144,7 @@

    watch individual cha

-

Parameters

+

Parameters

@@ -6813,7 +7152,7 @@

Parameters

-+ @@ -6852,6 +7191,14 @@

Parameters

+ + + + + + + + @@ -6887,12 +7234,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -6912,7 +7259,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -6922,7 +7269,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -6944,7 +7291,7 @@

    Produces

-

Tags

+

Tags

  • @@ -6962,7 +7309,7 @@

    watch changes to an objec

-

Parameters

+

Parameters

@@ -6970,7 +7317,7 @@

Parameters

-+ @@ -7009,6 +7356,14 @@

Parameters

+ + + + + + + + @@ -7052,12 +7407,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7077,7 +7432,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7087,7 +7442,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7109,7 +7464,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7127,7 +7482,7 @@

    watch individual changes

-

Parameters

+

Parameters

@@ -7135,7 +7490,7 @@

Parameters

-+ @@ -7174,6 +7529,14 @@

Parameters

+ + + + + + + + @@ -7209,12 +7572,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7234,7 +7597,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7244,7 +7607,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7266,7 +7629,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7284,7 +7647,7 @@

    watch changes to an object of

-

Parameters

+

Parameters

@@ -7292,7 +7655,7 @@

Parameters

-+ @@ -7331,6 +7694,14 @@

Parameters

+ + + + + + + + @@ -7374,12 +7745,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7399,7 +7770,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7409,7 +7780,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7431,7 +7802,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7449,7 +7820,7 @@

    watch individual changes

-

Parameters

+

Parameters

@@ -7457,7 +7828,7 @@

Parameters

-+ @@ -7496,6 +7867,14 @@

Parameters

+ + + + + + + + @@ -7531,12 +7910,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7556,7 +7935,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7566,7 +7945,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7588,7 +7967,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7606,7 +7985,7 @@

    watch changes to an object o

-

Parameters

+

Parameters

@@ -7614,7 +7993,7 @@

Parameters

-+ @@ -7653,6 +8032,14 @@

Parameters

+ + + + + + + + @@ -7696,12 +8083,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7721,7 +8108,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7731,7 +8118,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7753,7 +8140,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7771,7 +8158,7 @@

    watch individual changes

-

Parameters

+

Parameters

@@ -7779,7 +8166,7 @@

Parameters

-+ @@ -7818,6 +8205,14 @@

Parameters

+ + + + + + + + @@ -7853,12 +8248,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -7878,7 +8273,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -7888,7 +8283,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -7910,7 +8305,7 @@

    Produces

-

Tags

+

Tags

  • @@ -7928,7 +8323,7 @@

    watch changes to an object

-

Parameters

+

Parameters

@@ -7936,7 +8331,7 @@

Parameters

-+ @@ -7975,6 +8370,14 @@

Parameters

+ + + + + + + + @@ -8018,12 +8421,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -8043,7 +8446,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -8053,7 +8456,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -8075,7 +8478,7 @@

    Produces

-

Tags

+

Tags

  • @@ -8093,7 +8496,7 @@

    watch changes to an objec

-

Parameters

+

Parameters

@@ -8101,7 +8504,7 @@

Parameters

-+ @@ -8140,6 +8543,14 @@

Parameters

+ + + + + + + + @@ -8175,12 +8586,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -8200,7 +8611,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -8210,7 +8621,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -8232,7 +8643,7 @@

    Produces

-

Tags

+

Tags

  • @@ -8250,7 +8661,7 @@

    watch individual change

-

Parameters

+

Parameters

@@ -8258,7 +8669,7 @@

Parameters

-+ @@ -8297,6 +8708,14 @@

Parameters

+ + + + + + + + @@ -8324,12 +8743,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -8349,7 +8768,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -8359,7 +8778,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -8381,7 +8800,7 @@

    Produces

-

Tags

+

Tags

  • @@ -8399,7 +8818,7 @@

    watch individual chang

-

Parameters

+

Parameters

@@ -8407,7 +8826,7 @@

Parameters

-+ @@ -8446,6 +8865,14 @@

Parameters

+ + + + + + + + @@ -8473,12 +8900,12 @@

Parameters

-

Responses

+

Responses

QueryParameter

includeUninitialized

If true, partially initialized resources are included in the response.

false

boolean

QueryParameter

watch

Watch for changes to the described resources and return them as a stream of add, update, and remove notifications. Specify resourceVersion.

false

-+ @@ -8498,7 +8925,7 @@

Responses

-

Consumes

+

Consumes

  • @@ -8508,7 +8935,7 @@

    Consumes

-

Produces

+

Produces

  • @@ -8530,7 +8957,7 @@

    Produces

-

Tags

+

Tags

  • @@ -8545,8 +8972,8 @@

    Tags

- \ No newline at end of file + From b325abf830463a5ae0148ec420b76af4381deae2 Mon Sep 17 00:00:00 2001 From: MofeLee Date: Mon, 17 Jul 2017 14:16:42 +0800 Subject: [PATCH 08/27] Update authentication.md --- docs/admin/authentication.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/authentication.md b/docs/admin/authentication.md index ffe4fd0e2bcf9..2033b332060f0 100644 --- a/docs/admin/authentication.md +++ b/docs/admin/authentication.md @@ -277,7 +277,7 @@ solution for authentication. It does offer a few challenges: 1. Kubernetes has no "web interface" to trigger the authentication process. There is no browser or interface to collect credentials which is why you need to authenticate to your identity provider first. 2. The `id_token` can't be revoked, its like a certificate so it should be short-lived (only a few minutes) so it can be very annoying to have to get a new token every few minutes -3. There's no easy way to authenticate to the Kubernetes dashboard without using the `kubectl -proxy` command or a reverse proxy that injects the `id_token` +3. There's no easy way to authenticate to the Kubernetes dashboard without using the `kubectl proxy` command or a reverse proxy that injects the `id_token` #### Configuring the API Server From 09c94a963f015dc754d874b71853f1c6bab45edd Mon Sep 17 00:00:00 2001 From: Kevin Kirsche Date: Tue, 18 Jul 2017 02:00:48 -0400 Subject: [PATCH 09/27] Fix Secrets Syntax in Volume Spec (#4378) Fix #4377 --- docs/tasks/inject-data-application/podpreset.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/tasks/inject-data-application/podpreset.md b/docs/tasks/inject-data-application/podpreset.md index 11928db570995..54af226c794a4 100644 --- a/docs/tasks/inject-data-application/podpreset.md +++ b/docs/tasks/inject-data-application/podpreset.md @@ -219,7 +219,8 @@ spec: - name: cache-volume emptyDir: {} - name: secret-volume - secretName: config-details + secret: + secretName: config-details ``` **Pod spec after admission controller:** @@ -260,7 +261,8 @@ spec: - name: cache-volume emptyDir: {} - name: secret-volume - secretName: config-details + secret: + secretName: config-details ``` ### ReplicaSet with Pod Spec Example From bc3075de364effc5ea428b1fc601be62d2640669 Mon Sep 17 00:00:00 2001 From: Andrew Chen Date: Thu, 20 Jul 2017 10:57:38 -0700 Subject: [PATCH 10/27] Fixes issue #4389 --- cn/docs/tutorials/kubernetes-basics/cluster-intro.html | 3 --- .../imperative-object-management-command.md | 3 --- .../tutorials/object-management-kubectl/object-management.md | 5 ----- 3 files changed, 11 deletions(-) diff --git a/cn/docs/tutorials/kubernetes-basics/cluster-intro.html b/cn/docs/tutorials/kubernetes-basics/cluster-intro.html index 23eb7e3ba6903..628496d1d1463 100644 --- a/cn/docs/tutorials/kubernetes-basics/cluster-intro.html +++ b/cn/docs/tutorials/kubernetes-basics/cluster-intro.html @@ -1,7 +1,4 @@ --- -redirect_from: -- "/docs/tutorials/getting-started/create-cluster/" -- "/docs/tutorials/getting-started/create-cluster.html" title: 使用 Minikube 创建一个集群 --- diff --git a/cn/docs/tutorials/object-management-kubectl/imperative-object-management-command.md b/cn/docs/tutorials/object-management-kubectl/imperative-object-management-command.md index 5ddde0e5dcfc7..d1a1fde2b6989 100644 --- a/cn/docs/tutorials/object-management-kubectl/imperative-object-management-command.md +++ b/cn/docs/tutorials/object-management-kubectl/imperative-object-management-command.md @@ -1,8 +1,5 @@ --- title: 使用命令式的方式管理 Kubernetes 对象 -redirect_from: -- "/docs/concepts/tools/kubectl/object-management-using-imperative-commands/" -- "/docs/concepts/tools/kubectl/object-management-using-imperative-commands.html" --- {% capture overview %} diff --git a/cn/docs/tutorials/object-management-kubectl/object-management.md b/cn/docs/tutorials/object-management-kubectl/object-management.md index ab63f1665de6f..a14271a21a119 100644 --- a/cn/docs/tutorials/object-management-kubectl/object-management.md +++ b/cn/docs/tutorials/object-management-kubectl/object-management.md @@ -1,10 +1,5 @@ --- title: Kubernetes 对象管理 -redirect_from: -- "/docs/concepts/tools/kubectl/object-management-overview/" -- "/docs/concepts/tools/kubectl/object-management-overview.html" -- "/docs/user-guide/working-with-resources/" -- "/docs/user-guide/working-with-resources.html" --- {% capture overview %} From 9a89b61103e48578eb0f9d9975d99b135e0f2e19 Mon Sep 17 00:00:00 2001 From: Alex Contini Date: Thu, 20 Jul 2017 17:50:16 -0400 Subject: [PATCH 11/27] Updates to box.html and golfnow.html (#4277) * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * Add files via upload * fix layout and logo * fix golfnow layout and logo * fix golfnow link * Update box.html * Update golfnow.html * add custom css logic * switch layouts back to *basic* * remove class gridPage * debug * Update style_golfnow.css realized the footer class was what making the bg dark, so added an override to white * remove logo class on logo image * remove logo class from golfnow image * add mechanism to turn off default styles * debug liquid logic * rename variable * Setup custom SASS * test custom sass for case studies * remove class for image logos * cleanup and simplify * New logo for landing page * change GolfNow logo on landing page * fix spacing on case studies landing page * Updated custom sass Fixed mobile issues and some spacing issues * Update _case-studies.sass * Update _case-studies.sass --- _includes/head.html | 3 +- _sass/_case-studies.sass | 99 +++++++++++++++++++++++++++++++++++++ case-studies/box.html | 24 ++------- case-studies/golfnow.html | 25 +++------- case-studies/index.html | 15 +++--- css/case_study_styles.sass | 12 +++++ css/style_golfnow.css | 11 +++-- images/golfnow.png | Bin 0 -> 8350 bytes 8 files changed, 140 insertions(+), 49 deletions(-) create mode 100644 _sass/_case-studies.sass create mode 100644 css/case_study_styles.sass create mode 100644 images/golfnow.png diff --git a/_includes/head.html b/_includes/head.html index 37b7bfaab447b..87c4a4f175479 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -4,10 +4,11 @@ - + {% if page.case_study_styles %}{% else %}{% endif %} {% if page.class == "gridPage" %}{% endif %} + {% if page.css %}{% else %}{% endif %} {% if page.description %} diff --git a/_sass/_case-studies.sass b/_sass/_case-studies.sass new file mode 100644 index 0000000000000..1b359c17731f4 --- /dev/null +++ b/_sass/_case-studies.sass @@ -0,0 +1,99 @@ +// SASS for Case Studies pages go here: + +hr + background-color: #999999 + +h2 + margin-bottom: 15px !important + +.subhead + padding-bottom: 2% !important + padding-top: 0% !important + +.details + margin-left: 1.9% + padding-right: 5% + font-size: 16px !important + padding-bottom: 2% !important + +.section1 + margin-bottom: 3% + .cols + width: 80% !important + margin-left: 6.8% + padding-top: 1.5% + .col1 + width: 52% !important + font-weight: 300 !important + .col2 + width: 46% !important + +.banner2text + width: 63% + padding-top: 10% + padding-left: 0% !important + float: initial !important + text-align: center + margin: 0 auto + position: relative + +.banner3text, .banner4text, .banner5text + width: 63% + padding-left: 0% !important + float: initial !important + text-align: center + margin: 0 auto + position: relative + +.fullcol + float: initial !important + +body footer + background-color: #585858 !important + +.section1 + float: left !important + +.banner1 + padding-left: 11.9% !important + +.banner2 + float: initial !important + padding-bottom: 2% !important + +footer + padding: 0% 7% + +.banner4, .banner3, .banner5 + float: initial !important + +@media screen and (max-width: 910px) + .banner2text + width: 47% + padding-top: 45% + .details + margin-left: 0% + margin-bottom: 3% + .subhead + padding-bottom: 0% !important + padding-top: 0% !important + .banner3 + width: 100% !important + +@media screen and (max-width: 780px) + .section1 .cols + width: 100% !important + margin-left: 0% + padding-top: 5% + .col1, .col2 + width: 100% !important + margin-left: 0% !important + .fullcol + width: 90% !important + margin-left: 5% !important + .banner1 + padding-left: 10% !important + margin-bottom: 6% !important + .banner2text + padding-top: 60% !important + padding-bottom: 2% !important diff --git a/case-studies/box.html b/case-studies/box.html index 8a068dca14564..ea43909bfc6bf 100644 --- a/case-studies/box.html +++ b/case-studies/box.html @@ -1,23 +1,13 @@ --- title: Box Case Study -layout: none -class: gridPage +layout: basic +case_study_styles: true cid: caseStudies +css: /css/style_box.css --- - - - - - - - - Box Case Study - - -
-

CASE STUDY:
+

CASE STUDY:
An Early Adopter Envisions a New Cloud Platform

@@ -40,7 +30,6 @@

Challenge


-

Solution

Over the past couple of years, Box has been decomposing its infrastructure into microservices, and became an early adopter of, as well as contributor to, Kubernetes container orchestration. Kubernetes, Ghods says, has allowed Box’s developers to "target a universal set of concepts that are portable across all clouds."

@@ -52,14 +41,12 @@

Impact

-
"We looked at a lot of different options, but Kubernetes really stood out....the fact that on day one it was designed to run on bare metal just as well as Google Cloud meant that we could actually migrate to it inside of our data centers, and then use those same tools and concepts to run across public cloud providers as well."

- SAM GHOUDS, CO-FOUNDER AND SERVICES ARCHITECT OF BOX
-
@@ -122,6 +109,3 @@

2. Keep an open mind about what your company has to abstract away from devel "The same way it doesn’t make sense to deviate from Linux because it’s such a standard," Ghods says, "I think Kubernetes is going down the same path. It is still early days—the documentation still needs work and the user experience for writing and publishing specs to the Kubernetes clusters is still rough. When you’re on the cutting edge you can expect to bleed a little. But the bottom line is, this is where the industry is going. Three to five years from now it’s really going to be shocking if you run your infrastructure any other way."

- - - diff --git a/case-studies/golfnow.html b/case-studies/golfnow.html index 5491862825331..1d0395aad1a05 100644 --- a/case-studies/golfnow.html +++ b/case-studies/golfnow.html @@ -1,27 +1,17 @@ --- title: GolfNow Case Study -layout: none -class: gridPage +layout: basic +case_study_styles: true cid: caseStudies +css: /css/style_golfnow.css --- - - - - - - - - GolfNow Case Study - - - -
-

CASE STUDY:
+ +
+

CASE STUDY:
Saving Time and Money with Cloud Native Infrastructure

-
Company GolfNow     Location Orlando, Florida     Industry Golf Industry Technology and Services Provider
@@ -133,6 +123,3 @@

It’s not every day that you can say you’ve slashed an operating expense

- - - diff --git a/case-studies/index.html b/case-studies/index.html index 8ad921c62ffb9..0b386ee8c51d2 100644 --- a/case-studies/index.html +++ b/case-studies/index.html @@ -14,12 +14,12 @@
A collection of users running Kubernetes in production.
-
- GolfNow -

"We can move data centers in incredible amounts of time. If you haven’t come from the Kubernetes world and I tell you this is what I’ve been doing, you wouldn’t believe me."

- - Read about GolfNow -
+
+ GolfNow +

"We can move data centers in incredible amounts of time. If you haven’t come from the Kubernetes world and I tell you this is what I’ve been doing, you wouldn’t believe me."

+ + Read about GolfNow +
Pearson

"We chose Kubernetes because of its flexibility, ease of management and the way it improves our engineers' productivity."

@@ -42,6 +42,9 @@
A collection of users running Kubernetes in production.

"Kubernetes has the opportunity to be the new cloud platform. Because it’s a never-before-seen level of automation and intelligence surrounding infrastructure that is portable and agnostic to every way you can run your infrastructure."

Read about Box
+
+

+
diff --git a/css/case_study_styles.sass b/css/case_study_styles.sass new file mode 100644 index 0000000000000..beb0d33d49b2a --- /dev/null +++ b/css/case_study_styles.sass @@ -0,0 +1,12 @@ +--- +--- + +@import "../_sass/reset" +@import "../_sass/skin" +@import "../_sass/code-styles" + +// media queries +@import "../_sass/base" +@import "../_sass/case-studies" +@import "../_sass/tablet" +@import "../_sass/desktop" diff --git a/css/style_golfnow.css b/css/style_golfnow.css index 24cf958d7b3c4..bbe4056098132 100644 --- a/css/style_golfnow.css +++ b/css/style_golfnow.css @@ -1,6 +1,6 @@ -#caseStudyTitle { - margin-top: 1em !important; - font-family:"Roboto", sans-serif; + +.golfnow { + width:100%; } p { @@ -15,7 +15,12 @@ a { body { margin:0; + background-color:#ffffff !important; + +} +footer { +background-color:#ffffff !important; } h1 { diff --git a/images/golfnow.png b/images/golfnow.png new file mode 100644 index 0000000000000000000000000000000000000000..48364a3cbed1d297c59238f4b38840d006973b07 GIT binary patch literal 8350 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 Date: Fri, 21 Jul 2017 16:49:48 +0800 Subject: [PATCH 12/27] Fix An error 404 and fix a wrong hyperlink --- docs/tutorials/stateless-application/guestbook.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/tutorials/stateless-application/guestbook.md b/docs/tutorials/stateless-application/guestbook.md index a91e79029a771..fe9f36d37f163 100644 --- a/docs/tutorials/stateless-application/guestbook.md +++ b/docs/tutorials/stateless-application/guestbook.md @@ -112,7 +112,7 @@ To start the redis master, use the file [redis-master-deployment.yaml](https://g Although we have a single instance of our redis master, we are using a [Deployment](http://kubernetes.io/docs/user-guide/deployments/) to enforce that exactly one pod keeps running. E.g., if the node were to go down, the Deployment will ensure that the redis master gets restarted on a healthy node. (In our simplified example, this could result in data loss.) -The file [redis-master-deployment.yaml](redis-master-deployment.yaml) defines the redis master Deployment: +The file [redis-master-deployment.yaml](https://git.k8s.io/examples/guestbook/redis-master-deployment.yaml) defines the redis master Deployment: @@ -166,7 +166,7 @@ A Kubernetes [Service](http://kubernetes.io/docs/user-guide/services/) is a name Services find the pods to load balance based on the pods' labels. The selector field of the Service description determines which pods will receive the traffic sent to the Service, and the `port` and `targetPort` information defines what port the Service proxy will run at. -The file [redis-master-service.yaml](https://git.k8s.io/examples/guestbook/redis-master-deployment.yaml) defines the redis master Service: +The file [redis-master-service.yaml](https://git.k8s.io/examples/guestbook/redis-master-service.yaml) defines the redis master Service: From 8b687fcb12e14f8e4817b196b26a0c4a665dcfc3 Mon Sep 17 00:00:00 2001 From: Ahmet Alp Balkan Date: Fri, 21 Jul 2017 11:52:38 -0700 Subject: [PATCH 13/27] First-time tutorials import from k/examples (#4353) This imports the tutorials from kubernetes/examples repository for the first time. It adds "DO NOT UPDATE" notices and updates some titles. These tutorials will be maintained at k/examples repository. Also fixing a bug in the update script (we were inserting the ` + + ## Table of Contents - [Prerequisites](#prerequisites) @@ -835,7 +872,7 @@ via a replication control or a daemonset, you will need to use the custom seed p In Cassandra, a `SeedProvider` bootstraps the gossip protocol that Cassandra uses to find other Cassandra nodes. Seed addresses are hosts deemed as contact points. Cassandra instances use the seed list to find each other and learn the topology of the -ring. The [`KubernetesSeedProvider`](https://github.com/kubernetes/kubernetes/blob/master/examples/storage/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java) +ring. The [`KubernetesSeedProvider`](https://github.com/kubernetes/examples/blob/master/cassandra/java/src/main/java/io/k8s/cassandra/KubernetesSeedProvider.java) discovers Cassandra seeds IP addresses via the Kubernetes API, those Cassandra instances are defined within the Cassandra Service. @@ -856,4 +893,4 @@ manager that we need 0.1 cpu (0.1 core). [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/cassandra/README.md?pixel)]() - + \ No newline at end of file diff --git a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md index d8d4da9f46ca5..2ede41834aea1 100644 --- a/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md +++ b/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume.md @@ -1,10 +1,44 @@ --- title: "Example: WordPress and MySQL with Persistent Volumes" -assignees: -- ahmetb -- jeffmendoza --- + + + This example describes how to run a persistent installation of [WordPress](https://wordpress.org/) and [MySQL](https://www.mysql.com/) on Kubernetes. We'll use the @@ -366,4 +400,4 @@ kubectl delete pv wordpress-pv-1 wordpress-pv-2 [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/mysql-wordpress-pd/README.md?pixel)]() - + \ No newline at end of file diff --git a/docs/tutorials/stateless-application/guestbook.md b/docs/tutorials/stateless-application/guestbook.md index fe9f36d37f163..42775d131dae5 100644 --- a/docs/tutorials/stateless-application/guestbook.md +++ b/docs/tutorials/stateless-application/guestbook.md @@ -1,10 +1,43 @@ --- -title: "Example: PHP Guestbook application with Redis" -assignees: -- ahmetb -- jeffmendoza +title: "Example: Deploying PHP Guestbook application with Redis" --- + + This example shows how to build a simple, multi-tier web application using Kubernetes and [Docker](https://www.docker.com/). @@ -704,4 +737,4 @@ For Google Compute Engine details about limiting traffic to specific sources, se [![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/examples/guestbook/README.md?pixel)]() - + \ No newline at end of file diff --git a/update-imported-tutorials.py b/update-imported-tutorials.py index 35bb160e5ecf3..93b5fc98d15d7 100755 --- a/update-imported-tutorials.py +++ b/update-imported-tutorials.py @@ -59,8 +59,8 @@ def main(): print('Processing {0}'.format(dst_path)) remove_excluded_snippets(dst_path) - insert_title(dst_path, new_title) insert_do_not_update(dst_path) + insert_title(dst_path, new_title) print('Processed {0}'.format(dst_path)) From c4b110a08cb6ebab9c5f0ce62ea695fc05a72728 Mon Sep 17 00:00:00 2001 From: liyao Date: Sun, 23 Jul 2017 13:14:32 +0800 Subject: [PATCH 14/27] fix some writen mistake rm duplicated `resource` and insert a space between `during` and `leader` both at line 57 --- docs/admin/kube-scheduler.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/admin/kube-scheduler.md b/docs/admin/kube-scheduler.md index 75f5d3eeb9ddb..8c32f9e12c24f 100644 --- a/docs/admin/kube-scheduler.md +++ b/docs/admin/kube-scheduler.md @@ -54,7 +54,7 @@ TaintBasedEvictions=true|false (ALPHA - default=false) --leader-elect Start a leader election client and gain leadership before executing the main loop. Enable this when running replicated components for high availability. (default true) --leader-elect-lease-duration duration The duration that non-leader candidates will wait after observing a leadership renewal until attempting to acquire leadership of a led but unrenewed leader slot. This is effectively the maximum duration that a leader can be stopped before it is replaced by another candidate. This is only applicable if leader election is enabled. (default 15s) --leader-elect-renew-deadline duration The interval between attempts by the acting master to renew a leadership slot before it stops leading. This must be less than or equal to the lease duration. This is only applicable if leader election is enabled. (default 10s) - --leader-elect-resource-lock endpoints The type of resource resource object that is used for locking duringleader election. Supported options are endpoints (default) and `configmap`. (default "endpoints") + --leader-elect-resource-lock endpoints The type of resource object that is used for locking during leader election. Supported options are endpoints (default) and `configmap`. (default "endpoints") --leader-elect-retry-period duration The duration the clients should wait between attempting acquisition and renewal of a leadership. This is only applicable if leader election is enabled. (default 2s) --lock-object-name string Define the name of the lock object. (default "kube-scheduler") --lock-object-namespace string Define the namespace of the lock object. (default "kube-system") From 5d30aaf25cac20d22fa2606d0bffe23a2a272837 Mon Sep 17 00:00:00 2001 From: xiangpengzhao Date: Fri, 21 Jul 2017 10:29:09 +0800 Subject: [PATCH 15/27] Update supported resource types --- docs/user-guide/kubectl-overview.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/user-guide/kubectl-overview.md b/docs/user-guide/kubectl-overview.md index d03fd6361426b..1308f60b8cfe9 100644 --- a/docs/user-guide/kubectl-overview.md +++ b/docs/user-guide/kubectl-overview.md @@ -81,13 +81,16 @@ The following table includes a list of all the supported resource types and thei Resource type | Abbreviated alias -------------------- | -------------------- +`apiservices` | `certificatesigningrequests` |`csr` `clusters` | `clusterrolebindings` | `clusterroles` | `componentstatuses` |`cs` `configmaps` |`cm` +`controllerrevisions` | `cronjobs` | +`customresourcedefinition` |`crd` `daemonsets` |`ds` `deployments` |`deploy` `endpoints` |`ep` @@ -97,11 +100,12 @@ Resource type | Abbreviated alias `jobs` | `limitranges` |`limits` `namespaces` |`ns` -`networkpolicies` | +`networkpolicies` |`netpol` `nodes` |`no` `persistentvolumeclaims` |`pvc` `persistentvolumes` |`pv` `poddisruptionbudget` |`pdb` +`podpreset` | `pods` |`po` `podsecuritypolicies` |`psp` `podtemplates` | @@ -115,7 +119,6 @@ Resource type | Abbreviated alias `services` |`svc` `statefulsets` | `storageclasses` | -`thirdpartyresources` | ## Output options From ba0172468da55828fe0a54f151c109d0de408fa0 Mon Sep 17 00:00:00 2001 From: Xiaoyu Zhang Date: Tue, 25 Jul 2017 23:17:50 +0800 Subject: [PATCH 16/27] update links for afely-drain-node.md (#4373) update links for afely-drain-node.md --- docs/tasks/administer-cluster/safely-drain-node.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/tasks/administer-cluster/safely-drain-node.md b/docs/tasks/administer-cluster/safely-drain-node.md index 9ae7c3898fb4f..f80b39e9c6566 100644 --- a/docs/tasks/administer-cluster/safely-drain-node.md +++ b/docs/tasks/administer-cluster/safely-drain-node.md @@ -20,8 +20,8 @@ This task assumes that you have met the following prerequisites: * Either: 1. You do not require your applications to be highly available during the node drain, or - 1. You have read about the [PodDisruptionBudget concept](/docs/concepts/workloads/pods/disruptions.md) - and [Configured PodDisruptionBudgets](/docs/tasks/run-application/configure-pdb.md) for + 1. You have read about the [PodDisruptionBudget concept](/docs/concepts/workloads/pods/disruptions/) + and [Configured PodDisruptionBudgets](/docs/tasks/run-application/configure-pdb/) for applications that need them. {% endcapture %} @@ -39,7 +39,7 @@ will respect the `PodDisruptionBudgets` you have specified. **Note:** By default `kubectl drain` will ignore certain system pods on the node that cannot be killed; see -the [kubectl drain](/docs/user-guide/kubectl/v1.6/#drain) +the [kubectl drain](/docs/user-guide/kubectl/{{page.version}}/#drain) documentation for more details. When `kubectl drain` returns successfully, that indicates that all of @@ -90,11 +90,11 @@ budget are blocked. ## The Eviction API -If you prefer not to use [kubectl drain](/docs/user-guide/kubectl/v1.6/#drain) (such as +If you prefer not to use [kubectl drain](/docs/user-guide/kubectl/{{page.version}}/#drain) (such as to avoid calling to an external command, or to get finer control over over the pod eviction process), you can also programmatically cause evictions using the eviction API. -You should first be familiar with using [Kubernetes language clients](/docs/tasks/administer-cluster/access-cluster-api.md#programmatic-access-to-the-api). +You should first be familiar with using [Kubernetes language clients](/docs/tasks/administer-cluster/access-cluster-api/#programmatic-access-to-the-api). The eviction subresource of a pod can be thought of as a kind of policy-controlled DELETE operation on the pod @@ -155,7 +155,7 @@ application owners and cluster owners to establish an agreement on behavior in t {% capture whatsnext %} -* Follow steps to protect your application by [configuring a Pod Disruption Budget](/docs/tasks/run-application//configure-pdb.md). +* Follow steps to protect your application by [configuring a Pod Disruption Budget](/docs/tasks/run-application/configure-pdb/). {% endcapture %} From d3d96550d6e5d31e1028abc38ca4a38c40f01f1b Mon Sep 17 00:00:00 2001 From: Howie Benefiel Date: Tue, 25 Jul 2017 14:52:01 -0500 Subject: [PATCH 17/27] Change big to large to avoid awkward verbiage (#4384) In canonical American English, "large" is generally used to describe the size of a number. This is purely a style change, but "large number of" is less awkward sounding than "big number of". --- docs/concepts/architecture/nodes.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/concepts/architecture/nodes.md b/docs/concepts/architecture/nodes.md index 9cd54bfeac33e..7afc36a1eecfe 100644 --- a/docs/concepts/architecture/nodes.md +++ b/docs/concepts/architecture/nodes.md @@ -141,7 +141,7 @@ ConditionUnknown and 5m after that to start evicting pods.) The node controller checks the state of each node every `--node-monitor-period` seconds. In Kubernetes 1.4, we updated the logic of the node controller to better handle -cases when a big number of nodes have problems with reaching the master +cases when a large number of nodes have problems with reaching the master (e.g. because the master has networking problem). Starting with 1.4, the node controller will look at the state of all nodes in the cluster when making a decision about pod eviction. From 46525253b2a0f378c75f1bfa98e9141d93952fa9 Mon Sep 17 00:00:00 2001 From: Kaitlyn Barnard Date: Tue, 25 Jul 2017 13:02:02 -0700 Subject: [PATCH 18/27] All files for Ancestry.com and Wink Case Studies (#4412) * Add CSS files for Ancestry case study * Add HTML file for Ancestry case study * Add images for Ancestry case study * Delete golfnow.png * Add files via upload * Update index.html * Delete ancestry-logo.png * Add files via upload * Update index.html * Update style_ancestry.css * All files for Wink case study and updated index files and logo fixes * Update ancestry.html * Update ancestry.html --- case-studies/ancestry.html | 127 ++++++++ case-studies/index.html | 29 +- case-studies/wink.html | 125 +++++++ css/style_ancestry.css | 449 +++++++++++++++++++++++++ css/style_wink.css | 452 ++++++++++++++++++++++++++ images/CaseStudy_ancestry_banner1.jpg | Bin 0 -> 163414 bytes images/CaseStudy_ancestry_banner3.jpg | Bin 0 -> 138735 bytes images/CaseStudy_ancestry_banner4.jpg | Bin 0 -> 123019 bytes images/CaseStudy_wink_banner1.jpg | Bin 0 -> 164859 bytes images/CaseStudy_wink_banner3.jpg | Bin 0 -> 264541 bytes images/CaseStudy_wink_banner4.jpg | Bin 0 -> 181446 bytes images/case_studies/ancestry-logo.png | Bin 0 -> 21016 bytes images/case_studies/golfnow.png | Bin 13057 -> 22915 bytes images/case_studies/wink_logo.png | Bin 0 -> 21292 bytes images/wink_logo.png | Bin 0 -> 10509 bytes 15 files changed, 1172 insertions(+), 10 deletions(-) create mode 100644 case-studies/ancestry.html create mode 100755 case-studies/wink.html create mode 100644 css/style_ancestry.css create mode 100755 css/style_wink.css create mode 100644 images/CaseStudy_ancestry_banner1.jpg create mode 100644 images/CaseStudy_ancestry_banner3.jpg create mode 100644 images/CaseStudy_ancestry_banner4.jpg create mode 100755 images/CaseStudy_wink_banner1.jpg create mode 100755 images/CaseStudy_wink_banner3.jpg create mode 100755 images/CaseStudy_wink_banner4.jpg create mode 100644 images/case_studies/ancestry-logo.png create mode 100644 images/case_studies/wink_logo.png create mode 100755 images/wink_logo.png diff --git a/case-studies/ancestry.html b/case-studies/ancestry.html new file mode 100644 index 0000000000000..dfa6dee92d614 --- /dev/null +++ b/case-studies/ancestry.html @@ -0,0 +1,127 @@ +--- +title: Ancestry Case Study +layout: none +class: gridPage +cid: caseStudies +--- + + + + + + + + + +Ancestry Case Study + + + + + +
+

CASE STUDY:
Digging Into the Past With New Technology

+ +
+ +
+ Company  Ancestry     Location  Lehi, Utah     Industry  Internet Company, Online Services +
+ +
+ +
+
+ +

Challenge

+Ancestry, the global leader in family history and consumer genomics, uses sophisticated engineering and technology to help everyone, everywhere discover the story of what led to them. The company has spent more than 30 years innovating and building products and technologies that at their core, result in real and emotional human responses. Ancestry currently serves more than 2.6 million paying subscribers, holds 20 billion historical records, 90 million family trees and more than four million people are in its AncestryDNA network, making it the largest consumer genomics DNA network in the world. The company's popular website, ancestry.com, has been working with big data long before the term was popularized. The site was built on hundreds of services, technologies and a traditional deployment methodology. "It's worked well for us in the past," says Paul MacKay, software engineer and architect at Ancestry, "but had become quite cumbersome in its processing and is time-consuming. As a primarily online service, we are constantly looking for ways to accelerate to be more agile in delivering our solutions and our products." + +
+ +
+ +
+

Solution

+ + The company is transitioning to cloud native infrastructure, using Docker containerization, Kubernetes orchestration and Prometheus for cluster monitoring.
+
+

Impact

+ "Every single product, every decision we make at Ancestry, focuses on delighting our customers with intimate, sometimes life-changing discoveries about themselves and their families," says MacKay. "As the company continues to grow, the increased productivity gains from using Kubernetes has helped Ancestry make customer discoveries faster. With the move to Dockerization for example, instead of taking between 20 to 50 minutes to deploy a new piece of code, we can now deploy in under a minute for much of our code. We’ve truly experienced a significant time savings in addition to the various features and benefits from cloud native and Kubernetes-type technologies." + +
+ +
+ +
+
+ "At a certain point, you have to step back if you're going to push a new technology and get key thought leaders with engineers within the organization to become your champions for new technology adoption. At training sessions, the development teams were always the ones that were saying, 'Kubernetes saved our time tremendously; it's an enabler. It really is incredible.'"

- PAUL MACKAY, SOFTWARE ENGINEER AND ARCHITECT AT ANCESTRY +
+
+ +
+

It started with a Shaky Leaf.

+ + Since its introduction a decade ago, the Shaky Leaf icon has become one of Ancestry's signature features, which signals to users that there's a helpful hint you can use to find out more about your family tree.

+ So when the company decided to begin moving its infrastructure to cloud native technology, the first service that was launched on Kubernetes, the open source platform for managing application containers across clusters of hosts, was this hint system. Think of it as Amazon's recommended products, but instead of recommending products the company recommends records, stories, or familial connections. "It was a very important part of the site," says Ancestry software engineer and architect Paul MacKay, "but also small enough for a pilot project that we knew we could handle in a very appropriate, secure way."

+ And when it went live smoothly in early 2016, "our deployment time for this service literally was cut down from 50 minutes to 2 or 5 minutes," MacKay adds. "The development team was just thrilled because we're focused on supplying a great experience for our customers. And that means features, it means stability, it means all those things that we need for a first-in-class type operation."

+ The stability of that Shaky Leaf was a signal for MacKay and his team that their decision to embrace cloud native technologies was the right one for the company. With a private data center, Ancestry built its website (which launched in 1996) on hundreds of services and technologies and a traditional deployment methodology. "It worked well for us in the past, but the sum of the legacy systems became quite cumbersome in its processing and was time-consuming," says MacKay. "We were looking for other ways to accelerate, to be more agile in delivering our solutions and our products." +
+ +
+
+"And when it [Kubernetes] went live smoothly in early 2016, 'our deployment time for this service literally was cut down from 50 minutes to 2 or 5 minutes,' MacKay adds. 'The development team was just thrilled because we're focused on supplying a great experience for our customers. And that means features, it means stability, it means all those things that we need for a first-in-class type operation.'" +
+
+ +
+ That need led them in 2015 to explore containerization. Ancestry engineers had already been using technology like Java and Python on Linux, so part of the decision was about making the infrastructure more Linux-friendly. They quickly decided that they wanted to go with Docker for containerization, "but it always comes down to the orchestration part of it to make it really work," says MacKay.

+ His team looked at orchestration platforms offered by Docker Compose, Mesos and OpenStack, and even started to prototype some homegrown solutions. And then they started hearing rumblings of the imminent release of Kubernetes v1.0. "At the forefront, we were looking at the secret store, so we didn't have to manage that all ourselves, the config maps, the methodology of seamless deployment strategy," he says. "We found that how Kubernetes had done their resources, their types, their labels and just their interface was so much further advanced than the other things we had seen. It was a feature fit."

+
+ Plus, MacKay says, "I just believed in the confidence that comes with the history that Google has with containerization. So we started out right on the leading edge of it. And we haven't looked back since."

+ Which is not to say that adopting a new technology hasn't come with some challenges. "Change is hard," says MacKay. "Not because the technology is hard or that the technology is not good. It's just that people like to do things like they had done [before]. You have the early adopters and you have those who are coming in later. It was a learning experience on both sides."

+ Figuring out the best deployment operations for Ancestry was a big part of the work it took to adopt cloud native infrastructure. "We want to make sure the process is easy and also controlled in the manner that allows us the highest degree of security that we demand and our customers demand," says MacKay. "With Kubernetes and other products, there are some good solutions, but a little bit of glue is needed to bring it into corporate processes and governances. It's like having a set of gloves that are generic, but when you really do want to grab something you have to make it so it's customized to you. That's what we had to do."

+ Their best practices include allowing their developers to deploy into development stage and production, but then controlling the aspects that need governance and auditing, such as secrets. They found that having one namespace per service is useful for achieving that containment of secrets and config maps. And for their needs, having one container per pod makes it easier to manage and to have a smaller unit of deployment. +

+
+ +
+
+ +"The success of Ancestry's first deployment of the hint system on Kubernetes helped create momentum for greater adoption of the technology." + +
+
+ + +
+ With that process established, the time spent on deployment was cut down to under a minute for some services. "As programmers, we have what's called REPL: read, evaluate, print, and loop, but with Kubernetes, we have CDEL: compile, deploy, execute, and loop," says MacKay. "It's a very quick loop back and a great benefit to understand that when our services are deployed in production, they're the same as what we tested in the pre-production environments. The approach of cloud native for Ancestry provides us a better ability to scale and to accommodate the business needs as work loads occur."

+ The success of Ancestry's first deployment of the hint system on Kubernetes helped create momentum for greater adoption of the technology. "Engineers like to code, they like to do features, they don't like to sit around waiting for things to be deployed and worrying about scaling up and out and down," says MacKay. "After a while the engineers became our champions. At training sessions, the development teams were always the ones saying, 'Kubernetes saved our time tremendously; it's an enabler; it really is incredible.' Over time, we were able to convince our management that this was a transition that the industry is making and that we needed to be a part of it."

+ A year later, Ancestry has transitioned a good number of applications to Kubernetes. "We have many different services that make up the rich environment that [the website] has from both the DNA side and the family history side," says MacKay. "We have front-end stacks, back-end stacks and back-end processing type stacks that are in the cluster."

+ The company continues to weigh which services it will move forward to Kubernetes, which ones will be kept as is, and which will be replaced in the future and thus don't have to be moved over. MacKay estimates that the company is "approaching halfway on those features that are going forward. We don't have to do a lot of convincing anymore. It's more of an issue of timing with getting product management and engineering staff the knowledge and information that they need." +
+ +
+
+ "... 'I believe in Kubernetes. I believe in containerization. I think + if we can get there and establish ourselves in that world, we will be further along and far better off being agile and all the things we talk about, + and it'll go forward.'" +
+
+ +
+ + +Looking ahead, MacKay sees Ancestry maximizing the benefits of Kubernetes in 2017. "We're very close to having everything that should be or could be in a Linux-friendly world in Kubernetes by the end of the year," he says, adding that he's looking forward to features such as federation and horizontal pod autoscaling that are currently in the works. "Kubernetes has been very wonderful for us and we continue to ride the wave."

+That wave, he points out, has everything to do with the vibrant Kubernetes community, which has grown by leaps and bounds since Ancestry joined it as an early adopter. "This is just a very rough way of judging it, but on Slack in June 2015, there were maybe 500 on there," MacKay says. "The last time I looked there were maybe 8,500 just on the Slack channel. There are so many major companies and different kinds of companies involved now. It's the variety of contributors, the number of contributors, the incredibly competent and friendly community."

+As much as he and his team at Ancestry have benefited from what he calls "the goodness and the technical abilities of many" in the community, they've also contributed information about best practices, logged bug issues and participated in the open source conversation. And they've been active in attending meetups to help educate and give back to the local tech community in Utah. Says MacKay: "We're trying to give back as far as our experience goes, rather than just code." +

When he meets with companies considering adopting cloud native infrastructure, the best advice he has to give from Ancestry's Kubernetes journey is this: "Start small, but with hard problems," he says. And "you need a patron who understands the vision of containerization, to help you tackle the political as well as other technical roadblocks that can occur when change is needed."

+With the changes that MacKay's team has led over the past year and a half, cloud native will be part of Ancestry's technological genealogy for years to come. MacKay has been such a champion of the technology that he says people have jokingly accused him of having a Kubernetes tattoo.

+"I really don't," he says with a laugh. "But I'm passionate. I'm not exclusive to any technology; I use whatever I need that's out there that makes us great. If it's something else, I'll use it. But right now I believe in Kubernetes. I believe in containerization. I think if we can get there and establish ourselves in that world, we will be further along and far better off being agile and all the things we talk about, and it'll go forward."

+He pauses. "So, yeah, I guess you can say I'm an evangelist for Kubernetes," he says. "But I'm not getting a tattoo!" + + +
+ + + + diff --git a/case-studies/index.html b/case-studies/index.html index 0b386ee8c51d2..08a3bac5cae63 100644 --- a/case-studies/index.html +++ b/case-studies/index.html @@ -14,12 +14,24 @@
A collection of users running Kubernetes in production.
-
- GolfNow -

"We can move data centers in incredible amounts of time. If you haven’t come from the Kubernetes world and I tell you this is what I’ve been doing, you wouldn’t believe me."

- - Read about GolfNow -
+
+ Wink +

"What you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate."

+ + Read about Wink +
+
+ Ancestry +

"Kubernetes saved our time tremendously; it’s an enabler. It really is incredible."

+ + Read about Ancestry.com +
+
+ GolfNow +

"We can move data centers in incredible amounts of time. If you haven’t come from the Kubernetes world and I tell you this is what I’ve been doing, you wouldn’t believe me."

+ + Read about GolfNow +
Pearson

"We chose Kubernetes because of its flexibility, ease of management and the way it improves our engineers' productivity."

@@ -39,12 +51,9 @@
A collection of users running Kubernetes in production.
box -

"Kubernetes has the opportunity to be the new cloud platform. Because it’s a never-before-seen level of automation and intelligence surrounding infrastructure that is portable and agnostic to every way you can run your infrastructure."

+

"Kubernetes has the opportunity to be the new cloud platform. Because it’s a never-before-seen level of automation and intelligence surrounding infrastructure."

Read about Box
-
-

-
diff --git a/case-studies/wink.html b/case-studies/wink.html new file mode 100755 index 0000000000000..69ba3234fbf4a --- /dev/null +++ b/case-studies/wink.html @@ -0,0 +1,125 @@ +--- +title: WINK Case Study +layout: none +class: gridPage +cid: caseStudies +--- + + + + + + + + WINK Case Study + + + + +
+

CASE STUDY:
+
Cloud-Native Infrastructure Keeps Your Smart Home Connected
+

+
+ + +
+ Company  Wink     Location  New York, N.Y.     Industry  Internet of Things Platform +
+ +
+ +
+ +
+
+ +

Challenge

+ Building a low-latency, highly reliable infrastructure to serve communications between millions of connected smart-home devices and the company’s consumer hubs and mobile app, with an emphasis on horizontal scalability, the ability to encrypt everything quickly and connections that could be easily brought back up if anything went wrong. +
+ +

Solution

+ Across-the-board use of a Kubernetes-Docker-CoreOS Container Linux stack.

+
+ +
+

Impact

+ "Two of the biggest American retailers [Home Depot and Walmart] are carrying and promoting the brand and the hardware,” Wink Head of Engineering Kit Klein says proudly – though he adds that "it really comes with a lot of pressure. It’s not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And that’s further testament to how much faith Klein has in the infrastructure that the Wink team has built. With 80 percent of Wink’s workload running on a unified stack of Kubernetes-Docker-CoreOS, the company has put itself in a position to continually innovate and improve its products and services. Committing to this technology, says Klein, "makes building on top of the infrastructure relatively easy.” +
+
+ +
+ + +
+
+ "It’s not proprietary, it’s totally open, it’s really portable. You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. That’s the benefit of having everything unified on one open source Kubernetes-Docker-CoreOS Container Linux stack. There’s massive security benefits if you only have one Linux distro/machine image to validate. The benefits are enormous because you save money, and you save time.”

- KIT KLEIN, HEAD OF ENGINEERING, WINK +
+
+ + +
+ +
+

How many people does it take to turn on a light bulb?

+ + Kit Klein whips out his phone to demonstrate. With a few swipes, the head of engineering at Wink pulls up the smart-home app created by the New York City-based company and taps the light button. "Honestly when you’re holding the phone and you’re hitting the light,” he says, "by the time you feel the pressure of your finger on the screen, it’s on. It takes as long as the signal to travel to your brain.”

+ Sure, it takes just one finger and less than 200 milliseconds to turn on the light – or lock a door or change a thermostat. But what allows Wink to help consumers manage their connected smart-home products with such speed and ease is a sophisticated, cloud native infrastructure that Klein and his team built and continue to develop using a unified stack of CoreOS, the open-source operating system designed for clustered deployments, and Kubernetes, an open-source platform for automating deployment, scaling, and operations of application containers across clusters of hosts, providing container-centric infrastructure. "When you have a big, complex network of interdependent microservices that need to be able to discover each other, and need to be horizontally scalable and tolerant to failure, that’s what this is really optimized for,” says Klein. "A lot of people end up relying on proprietary services [offered by some big cloud providers] to do some of this stuff, but what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.”

+ Indeed, Wink did. The company’s mission statement is to make the connected home accessible – that is, user-friendly for non-technical owners, affordable and perhaps most importantly, reliable. "If you can’t trust that when you hit the switch, you know a light is going to go on, or if you’re remote and you’re checking on your house and that information isn’t accurate, then the convenience of the system is lost,” says Klein. "So that’s where the infrastructure comes in.”

+ Wink was incubated within Quirky, a company that developed crowd-sourced inventions. The Wink app was first introduced in 2013, and at the time, it controlled only a few consumer products such as the PivotPower Strip that Quirky produced in collaboration with GE. As smart-home products proliferated, Wink was launched in 2014 in Home Depot stores nationwide. Its first project: a hub that could integrate with smart products from about a dozen brands like Honeywell and Chamberlain. The biggest challenge would be to build the infrastructure to serve all those communications between the hub and the products, with a focus on maximizing reliability and minimizing latency.

+ "When we originally started out, we were moving very fast trying to get the first product to market, the minimum viable product,” says Klein. "Lots of times you go down a path and end up having to backtrack and try different things. But in this particular case, we did a lot of the work up front, which led to us making a really sound decision to deploy it on CoreOS Container Linux. And that was very early in the life of it.” + + +
+
+ +
+
+ "...what you get by adopting CoreOS/Kubernetes is portability, to not be locked in to anyone. You can really make your own fate.” +
+
+ +
+
+ Concern number one: Wink’s products need to connect to consumer devices in people’s homes, behind a firewall. "You don’t have an end point like a URL, and you don’t even know what ports are open behind that firewall,” Klein explains. "So you essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And it’s really, really important that it’s persistent because you want to decrease as much as possible the overhead of sending a message – you never know when someone is going to turn on the lights.”

+ With the earliest version of the Wink Hub, when you decided to turn your lights on or off, the request would be sent to the cloud and then executed. Subsequent updates to Wink’s software enabled local control, cutting latency down to about 10 milliseconds for many devices. But with the need for cloud-enabled integrations of an ever-growing ecosystem of smart home products, low-latency internet connectivity is still a critical consideration. +

"You essentially need to have this thing wake up and talk to your system and then open real-time, bidirectional communication between the cloud and the device. And it’s really, really important that it’s persistent...you never know when someone is going to turn on the lights.”

+ In addition, Wink had other requirements: horizontal scalability, the ability to encrypt everything quickly, connections that could be easily brought back up if something went wrong. "Looking at this whole structure we started, we decided to make a secure socket-based service,” says Klein. "We’ve always used, I would say, some sort of clustering technology to deploy our services and so the decision we came to was, this thing is going to be containerized, running on Docker.”

+ At the time – just over two years ago – Docker wasn’t yet widely used, but as Klein points out, "it was certainly understood by the people who were on the frontier of technology. We started looking at potential technologies that existed. One of the limiting factors was that we needed to deploy multi-port non-http/https services. It wasn’t really appropriate for some of the early cluster technology. We liked the project a lot and we ended up using it on other stuff for a while, but initially it was too targeted toward http workloads.”

+ Once Wink’s backend engineering team decided on a Dockerized workload, they had to make decisions about the OS and the container orchestration platform. "Obviously you can’t just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.” + +
+
+ +
+
+ "Obviously you can’t just start the containers and hope everything goes well,” Klein says with a laugh. "You need to have a system that is helpful [in order] to manage where the workloads are being distributed out to. And when the container inevitably dies or something like that, to restart it, you have a load balancer. All sorts of housekeeping work is needed to have a robust infrastructure.” +
+
+ +
+
+ Wink considered building directly on a general purpose Linux distro like Ubuntu (which would have required installing tools to run a containerized workload) and cluster management systems like Mesos (which was targeted toward enterprises with larger teams/workloads), but ultimately set their sights on CoreOS Container Linux. "A container-optimized Linux distribution system was exactly what we needed,” he says. "We didn’t have to futz around with trying to take something like a Linux distro and install everything. It’s got a built-in container orchestration system, which is Fleet, and an easy-to-use API. It’s not as feature-rich as some of the heavier solutions, but we realized that, at that moment, it was exactly what we needed.”

+ Wink’s hub (along with a revamped app) was introduced in July 2014 with a short-term deployment, and within the first month, they had moved the service to the Dockerized CoreOS deployment. Since then, they’ve moved almost every other piece of their infrastructure – from third-party cloud-to-cloud integrations to their customer service and payment portals – onto CoreOS Container Linux clusters.

+ Using this setup did require some customization. "Fleet is really nice as a basic container orchestration system, but it doesn’t take care of routing, sharing configurations, secrets, et cetera, among instances of a service,” Klein says. "All of those layers of functionality can be implemented, of course, but if you don’t want to spend a lot of time writing unit files manually – which of course nobody does – you need to create a tool to automate some of that, which we did.”

+ Wink quickly embraced the Kubernetes container cluster manager when it was launched in 2015 and integrated with CoreOS core technology, and as promised, it ended up providing the features Wink wanted and had planned to build. "If not for Kubernetes, we likely would have taken the logic and library we implemented for the automation tool that we created, and would have used it in a higher level abstraction and tool that could be used by non-DevOps engineers from the command line to create and manage clusters,” Klein says. "But Kubernetes made that totally unnecessary – and is written and maintained by people with a lot more experience in cluster management than us, so all the better.” Now, an estimated 80 percent of Wink’s workload is run on Kubernetes on top of CoreOS Container Linux. + +
+
+ +
+
+ "Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.” +
+
+ +
+
+ Wink’s reasons for going all in are clear: "It’s not proprietary, it’s totally open, it’s really portable,” Klein says. "You can run all the workloads across different cloud providers. You can easily run a hybrid AWS or even bring in your own data center. That’s the benefit of having everything unified on one Kubernetes-Docker-CoreOS Container Linux stack. There’s massive security benefits if you only have one Linux distro to try to validate. The benefits are enormous because you save money, you save time.”

+ Klein concedes that there are tradeoffs in every technology decision. "Cutting-edge technology is going to be scary for some people,” he says. "In order to take advantage of this, you really have to keep up with the technology. You can’t treat it like it’s a black box. Stay close to the development. Understand why decisions are being made. If you understand the intent behind the project, from the technological intent to a certain philosophical intent, then it helps you understand how to build your system in harmony with those systems as opposed to trying to work against it.”

+ Wink, which was acquired by Flex in 2015, now controls 2.3 million connected devices in households all over the country. What’s next for the company? A new version of the hub - Wink Hub 2 - hit shelves last November – and is being offered for the first time at Walmart stores in addition to Home Depot. "Two of the biggest American retailers are carrying and promoting the brand and the hardware,” Klein says proudly – though he adds that "it really comes with a lot of pressure. It’s not a retail situation where you have a lot of tech enthusiasts. These are everyday people who want something that works and have no tolerance for technical excuses.” And that’s further testament to how much faith Klein has in the infrastructure that the Wink team has have built.

+ Wink’s engineering team has grown exponentially since its early days, and behind the scenes, Klein is most excited about the machine learning Wink is using. "We built [a system of] containerized small sections of the data pipeline that feed each other and can have multiple outputs,” he says. "It’s like data pipelines as microservices.” Again, Klein points to having a unified stack running on CoreOS Container Linux and Kubernetes as the primary driver for the innovations to come. "You’re not reinventing the wheel every time,” he says. "You can just get down to work.”
+
+ + + diff --git a/css/style_ancestry.css b/css/style_ancestry.css new file mode 100644 index 0000000000000..03abb4e7e798f --- /dev/null +++ b/css/style_ancestry.css @@ -0,0 +1,449 @@ +#caseStudyTitle { + margin-top: 1em !important; + font-family:"Roboto", sans-serif; +} + +p { + font-family:"Roboto", sans-serif; + padding:5%; +} + +a { + text-decoration:none; + color:#3366ff; +} + +body { + margin:0; + +} + +h1 { + font-family:"Roboto", sans-serif; + font-weight:bold; + letter-spacing:0.025em; + font-size:42px; + padding-bottom:0px; +} + +.subhead { + font-size:26px; + font-weight:100; + line-height:40px; + padding-bottom:1%; + padding-top:0.5%; + +} + +.banner1 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:12%; + padding-bottom:0.5%; + padding-left:10.9%; + font-size:32px; + background: url('/images/CaseStudy_ancestry_banner1.jpg'); + background-size:100% auto; + background-repeat:no-repeat; +} + +.banner2 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:3%; + padding-bottom:3%; + font-size:19px; + letter-spacing:0.03em; + line-height:28px; + float:left; + background-size:100% auto; + background-color:#666666; + background-repeat:no-repeat; + +} + +.banner3 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-left:5%; + padding-right:5%; + padding-top:6%; + padding-bottom:6%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background: url('/images/CaseStudy_ancestry_banner3.jpg'); + background-size:100% auto; +} + +.banner4 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background: url('/images/CaseStudy_ancestry_banner4.jpg'); + background-size:100% auto; +} + +.banner5 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:3%; + padding-bottom:3%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background-size:100% auto; + background-color:#666666; + background-repeat:no-repeat; +} + +.banner2text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:65%; + padding-left:17%; + float:left; + text-align:center; +} + +.banner3text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:70%; + padding-left:15%; + text-align:center; +} + +.banner4text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:70%; + padding-left:15%; + text-align:center; +} + +.banner5text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:65%; + padding-left:16%; + float:left; + text-align:center; +} + + +h2 { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:24px; + line-height:34px; + color:#3366ff; +} + +.quote { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:22px; + line-height:32px; + color:#3366ff; +} + +.details { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:18px; + color:#3366ff; + letter-spacing:0.03em; + padding-bottom:1.5%; + padding-top:2%; + padding-left:11%; +} + + +hr { + border-bottom:0px solid; + width:100%; + opacity:0.5; + color:#aaaaaa; + height:1px; +} + +.col1 { + width: 40%; + padding-left:5%; + padding-right:8%; + float:left; + font-family:"Roboto", sans-serif; + font-weight:100; + color:#606060; + line-height:20px; + letter-spacing:0.03em; + font-size:14px; + +} + +.col2 { + width: 40%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + line-height:20px; + color:#606060; + letter-spacing:0.03em; + font-size:14px; + +} + +.fullcol { + width:77%; + margin-left:11%; + margin-right:10%; + margin-top:4%; + margin-bottom:6%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + line-height:22px; + color:#606060; + letter-spacing:0.03em; + font-size:14px; +} + +.cols { + width:90%; + margin-left:6.5%; + margin-top:1%; + margin-bottom:4%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + +} + +h4 { + font-family:"Roboto", sans-serif; + font-weight:400; + letter-spacing:0.9; + font-size:20px; + padding-bottom:0px; +} + + +@media screen and (max-width: 910px){ + +h1 { + font-family:"Roboto", sans-serif; + font-weight:bold; + line-height:36px; + letter-spacing:0.03em; + font-size:30px !important; + padding-bottom:0px; + width:80%; +} + +.subhead { + font-size:18px; + font-weight:100; + line-height:27px; +} + +.details { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:16px; + color:#3366ff; + letter-spacing:0.03em; + padding-bottom:2%; + line-height:28px; + padding-top:4%; + padding-left:10%; +} + +.logo { + width:8%; +} + +.col1 { + width: 90%; + padding-left:5%; + padding-right:8%; + float:left; + font-family:"Roboto", sans-serif; + font-weight:300; + color:#606060; + line-height:20px; + letter-spacing:0.03em; + font-size:14px; +} + +.col2 { + width: 90%; + padding-left:5%; + padding-top:5%; + padding-bottom:5%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + line-height:20px; + color:#606060; + letter-spacing:0.03em; + font-size:14px; +} + +.banner1 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:15%; + padding-bottom:2%; + padding-left:10%; + font-size:18px; + background: url('CaseStudy_ancestry_banner1.jpg'); + background-size:100% auto; +} + +.banner2 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:4%; + padding-bottom:4%; + padding-left:0%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background:none; + background-color:#666666; +} + +.banner3 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background: url('CaseStudy_ancestry_banner3.jpg'); +} + +.banner4 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background: url('CaseStudy_ancestry_banner4.jpg'); +} + +.banner5 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:4%; + padding-bottom:4%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background:none; + background-color:#666666; +} + +.banner2text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + float:left; + text-align:center; + color:#ffffff; +} + +.banner3text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:5%; + padding-top:5%; + padding-bottom:5%; + text-align:center; +} + +.banner4text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + padding-top:3%; + padding-bottom:3%; + text-align:center; +} + +.banner5text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + float:left; + text-align:center; + color:#ffffff; +} + +.fullcol { + margin-top:6%; +} + +h2 { + line-height:26px; + font-size:18px; +} + +.quote { + font-size:18px; + line-height:24px; +} + +.logo { + width:35%; +} + +@media screen and (max-width: 480px){ + + .logo { + width:65%; + padding-bottom:5%; + padding-top:2%; + } +} diff --git a/css/style_wink.css b/css/style_wink.css new file mode 100755 index 0000000000000..08a044933f118 --- /dev/null +++ b/css/style_wink.css @@ -0,0 +1,452 @@ +#caseStudyTitle { + margin-top: 1em !important; + font-family:"Roboto", sans-serif; +} + +p { + font-family:"Roboto", sans-serif; + padding:5%; +} + +a { + text-decoration:none; + color:#3366ff; +} + +body { + margin:0; + +} + +h1 { + font-family:"Roboto", sans-serif; + font-weight:bold; + letter-spacing:0.025em; + font-size:42px; + padding-bottom:0px; +} + +.subhead { + font-size:26px; + font-weight:100; + line-height:40px; + padding-bottom:1%; + +} + +.banner1 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:12%; + padding-bottom:0.5%; + padding-left:9.9%; + font-size:32px; + background: url('/images/CaseStudy_wink_banner1.jpg'); + background-size:100% auto; + background-repeat:no-repeat; +} + +.banner2 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:3%; + padding-bottom:3%; + font-size:19px; + letter-spacing:0.03em; + line-height:28px; + float:left; + background-size:100% auto; + background-color:#666666; + background-repeat:no-repeat; + +} + +.banner3 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-left:5%; + padding-right:5%; + padding-top:6%; + padding-bottom:6%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background: url('/images/CaseStudy_wink_banner3.jpg'); + background-size:100% auto; +} + +.banner4 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background: url('/images/CaseStudy_wink_banner4.jpg'); + background-size:100% auto; +} + +.banner5 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:3%; + padding-bottom:3%; + font-size:21px; + letter-spacing:0.03em; + line-height:32px; + float:left; + background-size:100% auto; + background-color:#666666; + background-repeat:no-repeat; +} + +.banner2text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:62%; + padding-left:18%; + float:left; + text-align:center; +} + +.banner3text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:70%; + padding-left:15%; + text-align:center; +} + +.banner4text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:60%; + padding-left:20%; + text-align:center; +} + +.banner5text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:65%; + padding-left:16%; + float:left; + text-align:center; +} + + +h2 { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:24px; + line-height:34px; + color:#3366ff; +} + +.quote { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:22px; + line-height:32px; + color:#3366ff; +} + +.details { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:18px; + color:#3366ff; + letter-spacing:0.03em; + padding-bottom:1.5%; + padding-top:2%; + padding-left:10%; +} + + + +hr { + border-bottom:0px solid; + width:100%; + opacity:0.5; + color:#aaaaaa; + height:1px; +} + +.col1 { + +width: 38%; +padding-left:5%; +padding-right:8%; +float:left; +font-family:"Roboto", sans-serif; +font-weight:100; +color:#606060; +line-height:20px; + letter-spacing:0.03em; +font-size:14px; + +} + +.col2 { + +width: 44%; +font-family:"Roboto", sans-serif; +font-weight:300; +float:left; +line-height:20px; +color:#606060; +letter-spacing:0.03em; +font-size:14px; + +} + +.fullcol { + width:77%; + margin-left:11%; + margin-right:10%; + margin-top:4%; + margin-bottom:6%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + line-height:22px; + color:#606060; + letter-spacing:0.03em; + font-size:14px; +} + +.cols { + width:77%; + margin-left:6.2%; + margin-top:1%; + margin-bottom:4%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + +} + +h4 { + font-family:"Roboto", sans-serif; + font-weight:400; + letter-spacing:0.9; + font-size:20px; + padding-bottom:0px; +} + + +@media screen and (max-width: 910px){ + +h1 { + font-family:"Roboto", sans-serif; + font-weight:bold; + line-height:36px; + letter-spacing:0.03em; + font-size:30px !important; + padding-bottom:0px; + width:80%; +} + +.subhead { + font-size:18px; + font-weight:100; + line-height:27px; +} + +.details { + font-family:"Roboto", sans-serif; + font-weight:300; + font-size:16px; + color:#3366ff; + letter-spacing:0.03em; + padding-bottom:2%; + line-height:28px; + padding-top:4%; + padding-left:10%; +} + +.logo { + width:8%; +} + +.col1 { + width: 100%; + padding-left:5%; + padding-right:8%; + float:left; + font-family:"Roboto", sans-serif; + font-weight:300; + color:#606060; + line-height:20px; + letter-spacing:0.03em; + font-size:14px; +} + +.col2 { + width: 100%; + padding-left:5%; + padding-top:5%; + padding-bottom:5%; + font-family:"Roboto", sans-serif; + font-weight:300; + float:left; + line-height:20px; + color:#606060; + letter-spacing:0.03em; + font-size:14px; +} + +.banner1 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:15%; + padding-bottom:2%; + padding-left:10%; + font-size:18px; + background: url('/images/CaseStudy_wink_banner1.jpg'); + background-size:100% auto; +} + +.banner2 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:4%; + padding-bottom:4%; + padding-left:0%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background:none; + background-color:#666666; +} + +.banner3 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:80%; + padding-left:15%; + padding-right:10%; + float:left; + background: url('/images/CaseStudy_wink_banner3.jpg'); +} + +.banner4 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:5%; + padding-bottom:5%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background: url('/images/CaseStudy_wink_banner4.jpg'); +} + +.banner5 { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + padding-top:4%; + padding-bottom:4%; + padding-left:0%; + font-size:18px; + letter-spacing:0.03em; + line-height:24px; + width:100%; + float:left; + background:none; + background-color:#666666; +} + +.banner2text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + float:left; + text-align:center; + color:#ffffff; +} + +.banner3text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:2%; + padding-right:10%; + padding-top:5%; + padding-bottom:5%; + text-align:center; +} + +.banner4text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + text-align:center; +} + +.banner5text { + font-family:"Roboto", sans-serif; + font-weight:300; + color:#ffffff; + width:80%; + padding-left:10%; + float:left; + text-align:center; + color:#ffffff; +} + +.fullcol { + margin-top:6%; +} + +h2 { + line-height:26px; + font-size:18px; +} + +.quote { + font-size:18px; + line-height:24px; +} + +.logo { + width:35%; +} + +@media screen and (max-width: 480px){ + + .logo { + width:50%; + padding-bottom:5%; + } +} diff --git a/images/CaseStudy_ancestry_banner1.jpg b/images/CaseStudy_ancestry_banner1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..817205ee6bc576008bf7d070ad910271436da52f GIT binary patch literal 163414 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%0D$S9wHcn>MSC;EQUXBfL0pX~QJrXX#rhN)=tpm7 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 literal 0 HcmV?d00001 diff --git a/images/CaseStudy_ancestry_banner3.jpg b/images/CaseStudy_ancestry_banner3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..01cca8ac9a0a5cadc613c02a5293190fb8048449 GIT binary patch literal 138735 zcma&NcQ{;M+crERNQ58=(W8VAHM%g-OQP2h5fL>Qy_<=MP9{Z35To}Jb@WLP5+$Rz z!35E}!C=}uxu5%YKi?ns_a5&)4vsx*ufEr{&g(qawMo;YMF6{Yh`S2_psz0qxCHp$ zi?j`3(h78X5elFHTqGwy2LMQml%Z|`0Y1u-lHUFjj?Y2QoF$wK9bTBQj&ms zzz`otrx(rve9xR+-Mv-$_u3HreD2Rx`K{#)r3`&Eo!#8^!u*`g!;CDP!d^HjJ?96i z@!bni4)OBwat?6h3-R*w_E!#3<^NaZ%H;dM$&&nh|H=~ZLX}_rZ>xMZh9-QPAU|h5 zISF}jCuwPEJ_RKSX*tEaGIDqLWTd3!B&C!jrKQBBq?M(mlx3v&{(bS2Tl0JFqHLz6 z^Y6CEzf}4EJ*eQ|V2R+n5+FZUNoge|B}pk6Nf{Y&at?9-Q11Z85OHsRfq!bya`t!f zbN2~w2YK`TtVI|hLK zEI=U7e^!Bs8z=ze?*{VW)71ReTjvuobaZm}{+oFF?~D4MacepIxd%Bv*YN{+@%?M2 zmEHeKFBD{z?kY$rsmp3ADE(^$@(P+d3W|5-)D@(p$%*{`F8lny%-+AtYW)9}l_YmY z^6xVF|16t-lE`cE@9lq#fc)b>X5{QmwjDpRk&t!)SO2y20nfjZjgf+c0=x!L{J&op z{`aE%&-L%(7bqymPsxA(dGP;wL;4C}xc{eq@o7UT%!F~GUb0B{2j^#%1f6S0p#{CUZA3(zI6H0%VSK^Ijfl{BaSZIjXw%yZ zLKQ{N0D@OPSh!Jbxh6s0k^n~@rX`#S&<>&|e*AtLcx8UM?u%X4>*qHw3u(W8#P>|v z{4<55uhV=B319`bDVA_%iw9oVJLB!P5|o-(j5J)vPmlmb=FdMnCV5L5C~GG@ISMXb znbTr^Sr{KIm@@I6rIt24_oZ=1&!Ux-(18S`6r|cyX0|Ko9|JS|epWu-(zQaoZjKBC zj>sB7o{Faf8Q*^ugY0biQH)>2JoqGkO{!32=;*Y~d-5bPRqt}Kq(Ak$_)6)4){By#=nursrBx5X{!_X4wTcMOTNv!9lQ*u4x_fQ zw7N=s@+9$94hb+)@dZe$7lo0dr~89mYBTP07%(VfaBQV(0_x!+ZARRj|Nt%b>uQj<*=@eYe zR~*hTNuKGG*3<7#={Ujr@5ng^I3=%VYIS0ZE6au1b7nuL%2BI9K}aioM%@9kvZe=) zBmfTvM!4d9{=nje;S@FA>V%`P-YVTI01N%8FVx?$Cw*eptFiFdh?VIYCH*R^^~-8H zu)`nVt^tfKyoOW1o$wQaa5dCoRtNM@#meF zz^A&f8`%@CLv+V1p8|W78W{5L&Cezd`Q2B;)?VD8Ui>gJ-e3P zV%&%xWk|%jcwCz?8!3#MA>u1TQZ-!WPpbjlf z9ybgPkN}y+qZY5CvAp$Y{LD!r9X|;WPp$}N<&%;@81p?V#%F%A{^UTYLa-3uhOMU{ z#Yupx3t%^5N_pkIU+a_sVLNje?05B=Q+J`@Sebga6?{n|-LI_^>~_Z*d)P(*+fPIf zXWaPXK49UeV-uAu5+EUGY<(YDUM6xT6Fs!;dtTN1lu3;z8!N8BI&J$3XpT%gLSZ}d;hx~PrkZ=IEBH;YO@(@3tLn(_cM9eN+FqZoz?{=}`F+Yze4u?aBqK>f$ zwVd929x3Sql%Pi4=Lb8bcew_26%mtAfwMBL4$7VPPtd%T4g)-yl%YSO>OK;3KQZ?% zEhhJ}uyEE2?)RwIj!frM^sHv~67wo&U{!zT6sSZ9Mr_m3OKnx9W}<^>EvNM1l`26SM2aLP3fqsPEgLN@p#34pvUYtptj zC)|{f3!`V)+v()RMy{5L0f)IJLB{t)5IQ_9EXxy76rlCM3XqNl95P zCoJHEBh$uN{$qrGKLZZkG~X|%dd2@F?!e@{{M!wS-Hx$o5BI0&IOwKIEeWtp|KlhL zoY`hr#WgJ!ycC@Stw}ZlrKhj%xV$YJy z=ry8Z+3U+3MYQIXyQi)GWc%bSwEO_fIWVbIJxl_Kf89JU>CG1p{dkW1oN&gUE#D8) zp+QaH|T7R6FF{PvFI4c#tj68{R#WOthC1g3Tofq>838GZm zu@3{08MOTM?;$;0@M^+0sC`nZusA}F_pvL%65&|Pnz%{{Opk9q<)rVE=bhN0BLNzG zQSWkF7bFq*J)?q$@4~-49^_>_Ta6wDGm!vs^2_&e8cYvZ$VRaz$E zOnoEwV++4JvhqLbDM{L?SdJ0lun4xfe~~MGkNN9+L2dO^1PO4>kD`wR@bQn-RD5IZBru|7Gj06<739l7 z1KU#(i`&yW_H6-fNNexk%Kj zU4acK4XWRfa6;L>H+e#+LoUIbMx}HvemBt9^JSHKXwm2-T4Q_~10^qmNfLnQ?)Nr} zwG(F#cRzuqR|-<`zCa9|q;x)7tglm5lTp7LKDLG#dr{}R-Y42>&sv8`OrUd6?RIM3;7lo_$xZng zy_#R^a2-6+vVqH)&S}D>qfAv@@};Kgj!Z2%qc|d(EoZ3<7YilLANHL~e)zabhEP*t zn911mZurpbOu&$krmW+3VM$frKL|>zV_~^`42N(N8d9&cCcwwA!a2x}YL<(KdFMkI zf(h*KyKKdIqJdDhn?BVwndQ%y``>k7PS;SjY1tfSnVE(HrVAL$S4>}i6;`J_>~lLA zP19p$$sd7ElK_3~TNUp-A^INCzF&!A;q*2vR&1MXk4h%Y1-Y2Hlo^m(N8Br~BHBDk z10QqVW;z^Oy3ZNi9%;#Ds31Ye0G;LS$mu=W{A!k<$v$@Fy4cda3E6is!lK>FJmC}j zB!Cd%W(Dn-KWM+x30H)EUm(?WNCK=Qvb0~40F2Mr_iq#9F~iH!KVz#Vzq>9pcTe~; z>B-lf#^}-AeGOHd*e+*VtR?)0wJh|Vr4v0au0~lpz(V?4(r=h-wnZRnB-a?qIMOZSgl*c5DVtF>j@Q=4Mbc8I z7$I&7&bx?QH;GU^O0P~bmL!({zK%MX!VjT6hIyUN9V894%CacQ6E6?BW2!R;tZ-0` zP*F1gggTz1NPthqqa3V_Rtm^X6tu_t&AY8~sWPZE`2nyZMawgaV70%|bg*j6a2J7d z0t=G>Cg!5^e#mJB2pRk~`qwCW2~w* z*g&H9&{Sm=KlF{y5nwDG%}A?IU#)yfuAfi zo0x_|gZI)qp5u?1AcM#)D+mrU!1745eGu#m)N9nPUdQS#!z&YCC${=vB2w>XAjbn% zR`W(qkeeq!+2{%DKzYt^-1X&>`zNCncWMN1_CJXY=jFE?D~KtBk=JQ{72;EEC)S>b zceKnowCXiwSbP>Mg9d&v?ZJsA;t-sT#aHTQW_RCedfU&u$&Rv9wlH?jmuLY&k!qMh ztT-I?&MWS9g0D#%fU#)Ol|Ahhr&?xWhLgWX)XaRwll!;zZm;0&nK5y52{=H!$DcO*gStVrhdEl zZ8g|I!1~4Ss~{qmBH>xsM#GFe`WY;~v;TFLKj+D*c1iYWGmTm%OM?zw89A@!dM z!dWeFplymkHQ4GV*#bL#gCzkPNr3(;Z6_=dV@6$&eh07ON=M%B;1aju*}xsWXA#FC zx!@Zl051yc8hS1o9oWKa7k)qj3>#-g-x%tl{G(hdhmR)mOuHVnQQ*dYR5+@w&8x

Ij7M2qe-qiT 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 literal 0 HcmV?d00001 diff --git a/images/CaseStudy_ancestry_banner4.jpg b/images/CaseStudy_ancestry_banner4.jpg new file mode 100644 index 0000000000000000000000000000000000000000..201984ddd4ce4ccc2e1e43291148e27db9c109c2 GIT binary patch literal 123019 zcma&MWmMbG)+ij@-JJpjN^uG9UWyZ>SRn)t?(W*)PH|}nQe2A^x8k%o#idv&R`l{e z_ndRz56^qoot3QL%xoRmGkf;T)56mRfKt)N&KdwvRpkI+0{%~WIsye|- zB-3d}Hxr|sl_ZmakUFori#){EPQ}j+qU)!j2ljISi&`;BOEF6Li1|QWpb!rWMjxo7 zle?IYB-6i`i#_N6sper~{1=LcgCvveKT;VD)wLMqo!uaeLfk+uFdrWuqp&D9pOAA1@a#pBNvn7(XxLzZ285G&d`2F&zb^f6IC$)J2C#l(ZbT%(?gQ! zS=0aB1gML;`hOY!kG%zj{?o31VY_?iK>m*!|0A}$p05jpM+f5W?CA!EJfk!Jhxobg z{_leRL44LmOw-Noc~C4I6`aAIP>7Rwv=9~)6%ghXl@*j1 z7X4QXfWq=h!Xg4fvckN4&y`I7rnUMXdhg$~a{s@yJkQGT{4-7dKhx$vRnK$rpX`5) z;JNT$GlDoh+m73_kvyFM@c%XS0aiWF#)$N^42S?A{l6#V|C3PuoBmCXjD++Ieg6L! z@c){5>H!d8A|;`%pdb+ekcp5`h>)K80oBj?q5Z@Azl#Yf00|id4IKj$``;q}3wcIG zM#01)1U$<}ML|XXCt+X!aGq-cL@)S=QDwE!EL@pL&O(!m_|faWPRlWqZv5796Ckq; zOVMS)D6W?Wy9>^Qr#2|OB=0TJv+@uEMl^b+DMI>6L6HN{afh2^g(*&Dr@0d zr=1*Hggj0Bv;@FKc}5~aAp%GP?md6ZXXdDbh?|rSEFlLly_^k*A_oy$B}w{Q$O1GN zst@7r%K#ArPv-axLGr}Je4cG1%D7H;jw3)8U|GjQh)4eGZ;zo{xDu|sL*FueI7fjXo(Y|FL}?^zl3PBjOt_ff;SncKv`+o z6B-2yx0nWjFO*N%QfYH~*SYdjOUe zJ{D{&_h1fKX4gGTVbotLK1h%*oBjP;z3LX&sLwMNk(X)Aw8r)Qxb6uMay?0nr__s| z!;`7m-9)ITF*#R#-%u595q6D3sX4Dm)DB!cG3y(ekvw$dI}wy64kr23B0`B{GV=%nkS4{}&c7`4dukM2% zp@}SJw9APc%#Hx5ojavmZyWzo9TZPT^pwCjk8DyIZ7=5yTXyD3(ZgC>GUl z-oURlb%o=N0h(KK2f(PQGo+R!jK2-}V#jDbC)w|V#{2ASFZY^|P*_f%qJYH-$iIG7`l{w+D8wYrh4EJsu*&s>Zr->$dBGW%>t?-Zs>fYQ5xKo# ztd@m0t_|!gM2_s`(YxlHhneNWNak0@t+eq^0L2*rS+3LZ4!Xf1|CamDT1GZY--vlq zN#o2^7PTl6ECF-w2#EsEmK9PhUo#Bky`^E;apDTy>t#nM58(%*i*e(Ipm`5Yez7DO6<6p5^A_KJgl-?RqgWTtC33Lrk<_s#)?#&fVf793}m{hEpU&@D8f5kT@*Z1KTY7 z@6$=6Rv=C(p89(};Yk5R=$EX4 zs8okk=v!H~ya~Ze!Cmsij+D8;PNA-qXt`ga`0H)=1UL?Cd6?L&vU~ZbwD3R#5@0K5?0N(Ka_inn zyyMw0`Qsqn7)QP1LA(NzpdBJ1F7Uwgi6a|*#>-b(>Mc)@pr&&2X538>XZD^mCj$tH z2-kWWb@2%>pqB7e6R-Kv=n0UQ9_#?_H21KMCs10eY2A1k@&v%5i#P9AqE>7zK!g!O zQ-0j9&81+hd$w4h2^2D)_YwRSHxu!N1z)}zvAJ(;djb$OZ$;H>7=@S5Q5$Ppt1-0e z|J-}eF99P_@66UF{Q)6g8Hs(5&haUh_VB<_Z&r@XnbYUhNH~M#N{*{C68e@?5S`{- zok~zT8R4S~8*0W13I|(f0S6b6wWwU!U;8u$r%1EwlD9QJE4C+KDw6dLeZKqt~_Cm+xZKS#a)Eix@h^o&dAO z**433XJR9ZxNhTaKbc{t`Zp0v1L-D<;1%3^_2vu~^4*hI`>?ia6eq$)w~<|7nz6{Fo2~^n0yR#b^ZJIpjB(s&+AF(+U(e`_hO$9z!lo^-7pz-o^ zDaAaFYMEO!Um*ylMjSS$JYq*)Z8-9eg;W#?ckKG#!BLZNj91lhvq#vLe-)yJ$s31U z`5j&n(tbN*`=N#XI1zXWwhWJy)8ZEeCG5#H@S0I)0luwU=)*6uU(GGd=;#x#s7h`x z&j%m`++4NcwaXs_^KUy@9$%2`Gse*hZ3lL3*?Eb1Yj;kEbZ1l5@~QaN*azxSeV2gQ zIgZde3tH+=MI*0n6L_BL8vb+`0M3HvLY7oNJIa}?BqNqsnvTP5w5cB64f(&WXdfn; zk9vz88Xyh_Y-mtK&RIn&#!6DmSETFZebU;$uth8+?F2VSaFmvTT}QWgO6tpr=_{t= zhPooNLW*CTY?xfKV8 zjFUSF%JSX-d;i8{ZS-z*rs-ph8D6X*`nUF+8n%3BVCWHp(~kaPw#QV;w}>#|QBBQX z9Eztz66c1KQyl1dO&fA{;^{K!LcXFwnLI*J7#A3MvGGSae^lRj^vr0G?q zy_X4Hlzkg@b_{g{FITrAwX&}KsjTzXb?*DcVve6%AGh@}1u_Yfonmh!409n0UA3b6 zQ#f!K0ju2dZ)9}6yB?E(8vNV~?IX~vFLZGXyufqyvnDE={W>j5EMa+w!(@-#vuEML z&UHUG-O8k{FWkj+)q9VLsM_}%%4S)!(y3GSxEG>qny@<14F)0bfBpF;tr3T|pdkb; z(b`qv#G*Na4 z#$G89Np?8<6nCJDFea&A!{wtUOkUh@mpT0o{5?2m*uq{mX3{(OL)3(J|0Vhp!1BE2 z?hi-%)h^m{ZDa3@J$LV(iYPX-TG^Wv;AJ@1?usv>J=8K3d1X1KNzBl(@;z^*s)hml zuU&`TJw4TEb2+x>0WIue873c@M;g7Nan1P-jq#AHlq!hG&84`V$cai@((Sk_L8?r= zgYr8P%gbS6Vl}R+?1h{!akudq`vPh%3LP^&p%!4oI0jAv8ChZvgF(YVz zu}7X=J|axn!elO|Eg3KEv|D1Xx#?Hznswmi7lRS>^Y*<>8gflq3wpdDTqfz5CqR3_ z9mu93t=dmk<)Fp8yQ4iL)p~Xe+sMsc*XS8mjONo6B3oT3B}s%#E; zxpPF&*)1M9kiLEf1ACUXQpiScf$Q%R0HwQG`ft$P6JQ=PQObWa`r^i}pf`UEyF63+ zZ2j6^Zm_`hIC#fv{p`gPpyORiT@l&m`)CApx`j@mByyo1cBmEynhcyewXibl{Pd5* z6JYS_(-UBiM)o+`{T+;X&le*y+G6z5AIC`=m;U>OkO+$m%IqwM-%E=N|34>WvPEtu zw+IYi0bsg^v`3TG_~n!oo1gMgn*kJ z*>xvj*R(KVO43lhrhx_)L$kls_3!}}865j#390s&>=mSx@C51__Y-o&v!@{NqO+#> z9&k+p!vnS(t1^$8>t^+$c7zrRoxbN4Zb20NaufODeGV4h)a#tQg8DK2flR0r54|Yj zdMGE=I_CbS%71FnP4YKJ_UaW_)_nICdbZ*lo$_dD`~+AWRK%70+P3uYt@*^n|DJWZTUfJ)xmY!lse(o)nK&#Q5-fb`tswYHnvAfoZmD zvD;RVEqHd-z>36)Kt019LM)wM&tDmxJMIv|KUN<%vUuW6{5m6h;Ze>G<7;^2hbVF_ z6r7Jf+L%tl%o{5wq0$Yl+3w>;CODunI}dBGLmIakapJu#FE?izb8=3*k>$@TdwAWB z#&-@1zSr8Ys3(9QCt8aDBy(`6Ax{ydsJ8d9yEvwLHfJlVeaBBG6okU){!=O*;z#5D z0Ffbj*M}}*q3CWyb6z4@sMxJ9)!q!}<~o2W8ehZ(SoQIIcQ5_SHa07UwD-P;eZ0V% z=9-$LAIgFJoBpt*^q}{Q>(p6o_G@7e+Qs#h%?V!U(Vn&hn3wwsh2-)fZ9{_@AToX+ zna0sb8vkC}>M_R!IRIuR^KGycD#}ko8@TY(y^R#fs$^tylQ!(VDB$rW! zuUe#1D?#gx?6&SMZZSDU>ouqhe@A}M#MIL$+S=?;)yUqHt7iH9F7RaX z%}-*VKC7Pq7UbO@TlTmqM?dX_XE-ITudZ_Ph=8yG6Y}N~wn9Dfa=n)j#jxTlSAAfG z&CrE@vd}=1G0^O2Kmpb%54ral?%i*FJT(5HW$P4G-k0&bf*2Lo6RF~A9@9!S__@XF z;mO_CAw=>U5)ER!+$L%5U1}bkAAew<%@p@>qlaT|0(ScjNYVQN`mO!V^m+3EIH$Dd zod~8Ri&3<0UR6=E z__}eAO0}Nuju_S9m4Y zpO9QH%CrYP8ONnAGi!{Eh0)eO9L0~-g8C6d_uTV|*O~#+fBipn*di?_-nS_QhYo!S zM28c7D_-1k$kM;=VzL&b@RXCthx23~xNZ!dD~|CxYtvByV-@Q$RwK#6zZ2Z(p|GyV zCtgjqN7O3GbFXW7$UjisdQV++ir@P3kw|OhqFTj(aJl9}?V@Im{i)SW0W?(Ee|>Bz?QQLmB|2P~@lq zgz8UcaTgSJAc-pMZ|+(gD_+`i|Js|}Z~babS|E9WC<`h}8eL>=pZR2S^`wy&gB6KM zgth*?0V=z8GA>>y9Cpe?zBD>q)`X0eoSoRuJLjYXva^%(IA`*e#g?&*b2Lgb){Mb* z4miX*+R6|mmSsuWXUtG!sq3slVqUUa5ODoN>f%IW|G6^-G;lJlM82h;-cERq1gkB^ zjt?Y1FxpIYXU7=w2uXKq`MoOjT3a{Q|F43+^Mq3Udn!~E(+)YDgnKwP?AndH^$7sf z1E}&t2f@k4YeO8(uk3_}Cw`ae;Bk(=jH3`S6ll}a>Gzsb($rnklzyA>iizkThgE>Z zkC_X+!NFM+GlWlyB-APHJGCt!8GF{8{NDT|QQr!jN3QLUl2|#LE}~?k|6VNUXd^;B z_C(MiKiR2(uDjj+II{jy%c$uIkQwp3sc2p*ifSnJ2bgutH`xs>W)05s#)&2Dn$}F% zZA|Yn>XZ!(#fC`H>>?F4(Fp`f9boK|ajPP2Q9GekSMUL@L52>-{p<6`dxK&6*EvOo zSAJmK-bsf9J$V8Rklxi+-|S(nDm*%mOd!hEQ;4km8%wH(_i9Rc{39+%6%_|VWRttc z4X~4k`>Dowft$in%>|>^WwVdQrO28fdKrc4`^ms`sJa42`U^jsH%S$;#xoa%)d%j+S@WWI z)pF^b+|QRVuVAWEFi7sFtl(VfM**ar`K##X!EB}Uw;%fXcd=f$4<()4UlV%Ix3(5B zWuAO=u_3?lwU1shT`6v<2i(VCu&j{oMu^)Q>>l(0!m}t={ef58@kX=$$Cb81FZZnX z8_kE>D=%$oN&GFie9yrOPw-C_x8jb><;Gso5hRJU9wIjxW9?8AnG|QCd6#<4&RXswK9&$zv608b8IP z0P%x`D4#+%v^L7>mySOb_<6HKKps=|W89If+mXmJ#rJTx#lVcO%=+s2b3Voltin>? zac%QaX?!kCbp)A_igd)m{vmN_cecfHA`}FS-2|f5N2H{J?zt=LnOmcQEu+y~?CB9i zVQ4+Zu(!{P#9&zUaG>@<*IPVTYaA`gLC?CU^Qkgz6?@i3aZ76#YP$6KR?u^Cb=qzb!I@d77gu3e34rmM{~{)~EGVRbd(T^*er1 z8~KLhl2>=Gr-e*RhFb|{d2=FOrlQamImOspsrYFH)k%D*c7AsUS(`t!C=sGP2eoqlU4s5Mb0iM>GxJVwl$?DP>|4 zW>EV*2QsCwa`s3_{=Fe{5jci0oFEec_+`n*s5Cv}!6YktCNO zYH-1rHn0)>7>O9aKb1kNTnR&$@kDm#3!`zpP{q{h!sbkPQUbt#*!>WJzp~N1VjQ(* z9Q=ODy_+l7qw}VjRW*vP!%4EGn0uw*>QiS{Srv&57yIi&B2;P$HdaXS3$pbt~L!9}B{t$GX{@f5=)|S4S5a%XFRw zv4p#xmT?j9`ZtvBVmW%$;<_OZ$d3ydx?sBY(-7%sr0RRD@DB;FbM_fA6C#PM<3{Sa zE@zeVHs7iu5j&N|DkkPub9)wals@}7pH)-sB%(5h4YTbGIX`?odQIHeb%yFItw)Nxg~Xn(c?Gp_WL6ThEy zzV^>Trg%QS7r4S}UZg#$Ibl#Pcmh7J(2RX#fxfoWuko6;vkeHjQWKkQeLUF#a77#9yh zaxI^hwU`eURjHm2*ndqY@2SM44z?7c5y9!}kF1{xK!@}jEo6eV7q088s@A$qN(ch| zI(tDY@#twKHi&}G8FQWW;1#M1BP8gMD+{^>2z9~x9NSjM0`~u11o>-tqy%&@@Bh(r zNV&E}ZEPgH1Kx3LI~!ftfT^+PLTQKxw^IX#hwA$cb$ajX0fi)1H;R+uTZ!@Xo{q)$ z^((oxtlJC8vHc6?I5VTn&GO~XRvKz;5!%0kV(G80#=f5Z*40rFwvY;TjO|Q7u1;sW zuV27v%H$z27vFStbF#C33mnDk6Y62w$=VBWRF54j%Qo6EeD@cC0XNi{Dg9D1xvD08 zKk}tv-2d<=99FVJ4_?$Ci%7>5ZoTE8z+oTF4kGxKSU8^%9!QqrT1~kHBBSy4KajpG z^#A>c0jGHa+)D>O0S;4jO9LPTXH!oA*`QFp^ps$1%@yau?-~rw9$SG?{ZD{%W8LF0 z0eu~Bu(P(M?QJx%WO0-IyUeVsIHRz+?#8ZZ{oa3lu4exEN)|_cbW@%T0G@^y9SDQsnT>wk|fW zCu683B~bxiD8l8l%YM5Me|!cC?fGbA_`&w8Rhp1$o``&j{jl-rXzg9DF+*@cdtSJO zu)g$+v`isc-HPI3oAX@}$Rf9c?N18+TgjjP2ja986O6vg{$b8D*M0N5oi#p&Ik@;) zJj9SE0JF#wU?udVFt0)4R9nRMVqADx-XXPB#>ZTzcC0?fz^08M>QjvCQEO|FxMu~a zF)T%1!j4m?CzeHr-O7`ln@R&!$2!jUv*};a=E!SPera(#%NgkKywn2j1&w_U(L)pM zpdiynHE7~05w6sERNG!;tCpVEjA1Zl;!5izEdeq+U;7sbbG&|T%1}=;#ut}Q%1)+H zl8xQ{pZgeQ7{AgX?7_M9XMdenRq8tIoj>|o!liI#N!e@8?G}T_ zs92mU>mH4M!fc6~B#nmX=wxGA53K3sCLV}^C}zedQG5ar61a}W%Wku%2|GyJ(2B!9 zHmt@~hB#8%0k<4oj|wMik@pg$-xnVV&=jc6hhoQpY*qa2I7g@LN6-|trF#N-K%%&f zu;jAM2&iTJM~xfM%<|(6dG_z5 zEAG8N-#Zad$8itK@r_epRmCykALB8<#mNBDA2uZ z=+9k$?Hx#}{p_MR^4vg&gn*OD=vnbnHVZ*rlB{=8SZrVwyZ{|RsAA*e-4Kku3 zrs3V(B@fIVW>G5p@OXM@&?ZGRged zsj#tn{z7&0ovx@_61Ayt0N*^LwuQE-=GZDXv}-W%E^lTMxMq#a@Yl8(9<3+d7fhN; zj2(ub!T~eS5XP)0;2(`iF@`N3_oa7U&?u$@-V9uo8IyHy8~v>mCbXQo9|n}yQOR3L0JHE z9a89Usz%i7ly`mK{WXz#3#kqRzJCZGpBkNF+eW%n2In|FHedEn8&MYr~<)?R1 zOt8}WY71_eEITw)bcaSEFZKlLAwwsBDu{ARgUCJs&Jv`$O|cx{X9=eu_=lj*Cje`B zyb}q&1t@pkK?haLr_m(=NO6jCSlnEP+aIhfwWVNK{+NGjO~$L<$#sm-V|%apsR$nX zuK34UwSJt^T7f#%i{-1kn<;(in0vr;3}T7?tDsuVU1li@z@h&+f5-`bTUij$IS3VjB-=s-)YQpd2<)jbtct0*!~l zXP4kwE!M5sNE2NFy*#Bip<0rMoa*!!_LJJr`G2DMWGEmtq5V`=#E2H(dr6}!Y%V5M zp(>$BodBu2%eg#`xG@nSeNc;-nrjHn-J=@Z?a}->L~^NG(QEO$O1e+}0hM7tPE|T~ zEJ7z}%b!cdjKT5ZIc}fn@#hIJ>^Rv1rPK0pJUuLXiJWUgJ7HzxqF$@T71Ba$Z|C;u zuZQ%S+L2~`hE;c_{KIzFz#Ti}#cc88xw+*-x|^T**yiK8re$DSX-P15^xa7C)E&pW z?e(#uhc@ZyyH^(7nSFO|!6jE(t-{+co-r?^_h;gT&u^r^q&^VTr$yd(5uCC-0puTH z>_q6RjMkpkmZOC0>LKXYXCcm!IK(Q=p6uD35*_you1|pS=8^)VrNoEv%W8rG6B82u zpU@+zQ5@iU-(!Q@(Ul$=&W`@eVyWe6YA~ltcUQ3swewYBaNE_PR6C_Tt-143@7{5xH+coqA({(b)A z3DYO`og5+W#r|())X)(YfChJF?dZ=q#F3v0R@*Y1<)DWon_d^7=|oC5q?zt@+@7Pv zQQ9A}(6mtDUXp>`+OZsszw>4yBD8dc2yPT52jBexY5DC_+Ggo;K2Z0tlz~kn z*@n`;m%$D_Db}8tbRNjR+AZ|w%Hywzw~gtbBqb?jGTaEDbR(aLo;{T#q7sb?ND$=` zRRA*DuJBQfS*(znt!~fjifRh+GEi>84w-Enoe~#Tq&>841sHx4Ei?RPo4;WeW5gTo zI#+YCxWKNjq1j{DJRa$y6Y#?e+2T73)pDofxzSE?U(}$epBAo+MEgn0|4C));5*G~ z(bnIrhYb7I^(#*RT-tkw=qeCh#`+E66QJ)oVyFsg!ggKt-tk!dwR-XV*v5L-kXNNe zLRB|S*Xy2Zh}OPjyi6%_?G>mbgMWm@3A>#?myE;FiCwg&6HKcwvJ#$r=~ndFB%4+W zLBscHF5RI3QB_qnJGrWp@*zNKvN$TliTVg>BeCi+?#;oQnqmxbY}qYu`y$=OJ7_wF zZX;>Rh#rEgIhh z5t5anDui{f7nBUMC&!16W1%4V=cA~!U14KR>zD_sS_f}>rhVQ2o;EIxJ0F4F`Nc6% zZ#xwE(`$wc>j}jKPa8l5Zuz|sj`{q%7j4p!2!-IHAYuh&_-Tjol~C!TGr^V;W`tLO+hVu^)1}a3!4C_6iL6jQs3{ zehF&Thnt!8=KNK;SR+6Enc-2xB%Vz+UiEquUOYu=Z{EygPs6er6>0w$4i=hlGM2e| zp|}GV@+UyRyW40RYy_XS3xMaBNI37Qe9p`q(QTQo51gF z+gR^d%f?4NHKNvUMg%4~p09bxZPw3FTmi?xBo^(uC^rsi_w_5gCnZu?X6vphqi8MB;6%;fh}Xl_Nw3$Z%TJ+ z=ji%8ZpS-SA&*9r3u&f756ccK5DFsz>1Yq%CRb6?ZyO+GKe+f%aJ-A)xJDN&)+9&pp_%7G5Sr+ z^Vpn;))Xqz)o@np!4>-=kB4!-murgptw4xB8FIfV(w3IT>$ceDiH-CxwYUS^IWBWm z&fu7#_BfPJ0WCkoT6WvVs%lF=P?XEIni4xVZ|>yq?(UZQnutk)~}b$+pz)6Kt}n+anfhT#EXpJ6}J zW19sH_hV8g~;Z8=NAF~qT1jIK$mhISLE zfo@@GH+F}81U0#e%~WePl2r~ zDABK`%6fiJ&SHNkxdpP?6AzT=RwpL-RUG)@pf@@e zJ04xs&kv$cZWO2x9KK4grJ7IPi;y(9uYCgirWE(f)OiAYi3tRy`!RhldkKN~NHW{g z{5i)hN%)x@Oo99Q?R>%Ch%aDGZF_CS`(DkH*`>MS#QW#HrCsw_c#cCaO&PBGFcS>z z8g0~(588W33AXDR&E}gJ`*Zp*^8|P<7#z3+@8S&#K0d!^D|utgvy1l+!0`z%U2GK0 zE4|8dHTgiTWj-#wns{7rD_C;Rvx~v=`ayd7&Gy#wa|zy!?cB#FzdadSd=H3?a znqCNQ$SaG}^0>52w^TZgs!}`y%TkNTTH!9iT-`aFRN787#z>{qj2=()<{`L6rpEg1 z6QK94{dcOEzAae&AuQNcdLCZ6tNAs_!mWxYv+8$mk|fyX5ju&vBG0{;3MJ5t!cVG$ zZl+jtM4=`c=pPaiOVm<^!?Yc{cklOXX8Xl$=#;-{?jExcJ*pQn447q=xbJd) zI-%mFwPzgeo}fcWU4J_;9k=X(Dg8L=ZbLZ#>Zb2_9t({{==Lx5u0J;8ksQHfQ>QiedgzAk%$7KgymWOff ze^WWd4_`+U}9T}|G-u=bvxbHfn3cC4- z#r&G$D6PYlIZ{G)=>F%DEx?28q!UFq?`mB&Q>6_Pohb9Tv(=@j8GY~m`!5)4XI8i~ zjp_?qVH(LV8!x_hy^$A5rrRbu{64|wV2m?6ptHXFd0gb3Ez-G0(S3uh@@_YY3aS&v zjj?UpBin!znVT`gE_7b%i^s zK&ggbO=!!;l-*T9h&&cAcAZyc85Hz+U8Buo3b+_9mm6AGFWR!)c@wo*?iA7UPFYui zWvkco+0xCvFVR?RC7GX~tVs+3;RFZetIE$eD|1N429$SprQXRjM_O(vGX7XIwrog! zKlG{_{JQwyy9|e=m1u;2?*z(k&E4D?np^J_6+8$9SmJ(pzDL4fl6n!1h+8}C$i7;o zvWb#QxPzs107~^rhw3HOj>rpG@SK*MYC?5^3ef5^3zzw0+6w zen44222=V^V-?}k*IBky5rJ%lB?uN-jZ z4Kq`o09nTBX>@F*V=YTxQAWbQ@Nq(7V45*->Zn5Z;^jenpR3uQv7@2vb-mYuBxAAN z!ND!m#o3rRe&L*X3i;MW-Dt-z_<<KJU<;P#d}2PF3u4rHb{&HnZPrR`eUhKZ|kMX-!cOC1G}EyIH} z2ES0YKTJi0{(fKNqzdqh=);%S3A8szk^2efp0kb1NacesTzK*+ZwJUST3sjkM%NVy z6_jxZ8vUqMy6H_Mv5pW3J!2XY%fNJ`DH;q3iF&U7l>}O->v;T@l;A_(PqSV3E;$Afrx^r~?4) z7ER>jYo)budyjBnwe6+}rno}?UUqR*?xS}(ZruuBUjl%d$#`<>DDsiJS|IeUmc~ol z`1r$nKQn}=Q*+PBty_FptrJq)#CU6hJpFAPCaqMr26^Qut@Cx}caRI+1)jzyAuN59_gs%ZITELAa6p1}S+ur2FvWVwM6zz)P!`jy3C zj&f@>ZqKiT^+$!L^h=PQvp0|&!2XA4gNmb0>K5;F=8WVMK#RsVgb%^JsWOQ3N~MpZ zMF>~%4xZQP(dZwU2$d=)u-2*4t4R3%e$**awG=EM1CfNI9-^=ds1J3kI+{E9!#MTWFU`XC zZibxcr{(6wqH38F=rSh4a7&0Wd@pv?KhSqatFF1+GdrCuF=t4BUBbsu>3gIDxM2b- zC~kaT{`lNa8-h)=0i-}*)S9h4@TaT!4a8s-QmfR7O)54}4v&H$r;? zRQDF6W3@iIvh<6DkHnHaZqcAP9yvPqhTC8_mlszVFn7$(M-s{~CQ!y-2gSu?6@N8e zyqqd-!j=IupU)KB=>h%CXJ=u8Bgb;_vr|(kgT+~EKM(?9iT4SokEjKTqD?!8>pO{0 zfEZ}^L&@9|;1pcJB1vRFsxd=``38n@-)O)#kRVO5Ur9=_Q?k3ZJ`KV-pZ*hUd&mB- z^7Ivmy_<_c_$sl!Ncp}oVC6dbN+(WwXKVM_qkKp!E!9|*evZgK2XquEcC;S$o&d^6 zi1K?x(6T>yHh=Kwr{k77d%eiNRu9dOqcf!?bk9#beO8y0XZ>`vyE(d>1H%xRJIcoe zM~Thp9L}SO%hHPvLWJvSPXOP?#DlW$eL-4hNx@dnPkSmHQiHU+znC8tG{-cvzkO?1 z>repzC=>dmjz(;FQt~mso^6U>D$%aUi3-;4`{c>w~N6ZdPw?W+AD5+ zt>m$7>+1sv;A1;1azQt(=-w!fr*(ox*23e0d3eyw?tWiAcfg;Z(dDj7c>3nkG;lU0!i5;Fp$A=QZ>`M>4v~7VZ&)nzDP4pW|D=UqBes? z4qp4ZyU)BVLq8CZvk~YV_6mIIlW2z}x zglT_w-dljS2kiwi52H_@2(T;tKDa|HIpS=KV8@(IH2g_4{DrqO+2(WgMt9`kjD&va z1>rP_h??LZL@tG;YL`66Yihic{bu+MVF)It1~)&`y5DB(FL%gXY!+uthP&lZuP4cG ze7eo>Hc&mhbI{iv1;)u&_g)kUc09BU!+>9;2F2Dr0S-2|GB?=^Uk9HlXAbe)Rw{1W zoAlgA#2=qeO@Wra`ayyHJ%tK2G{{5EW4b@eiY5J3nP*2=(_<-D;lt5St56lnaB$6aHH9;iN>?e*)6 zc&2Ioqbg?NsKP568i48?K#vIi!^LjfuGsey(ciJ zok5npyC%Y}rTzscCjIMoA?M9OgG0*-&d~0Vv<>aF^FFCbPZ6q=y&$u!^I`!Ou`I@s z>Qz})j-1a?sD57aTKEGs(211;8D=AEbv=9N*}?J}AdNwh`gel=YdKr)?-fjroc(Sr z{u~10oCqPfoOx(R#fTVko7eX?rU)(#9pIrK`u_1dO#vIysquV+Tu%E9su5;#)K`o& z3?Qxc77erP_9!dkV`1+pN>i|#Jeu*wb5wO$FCA?@m~+`TM`T)J;VKvIfvC`*J3ApX z4hb009;dAlufW38cbS@X5;6p$2DMW^FOjrd8q@`I`_Yto>9LYz+$U1`OP?y4Z)Wq$ zPHv(C+$)(orwqd|83?50U-TAhMI`)SRcyUlmk^x>QC{*TrNZ%;wjYj;*VqNO59syS zT>qxK6$^YCd+pL=Hg32x81vH)L3!J6!1%M&qK7EY^mY5H(A89mVi+>!F&Vm^0{P&L z%aODx;af)}2 zM^V?F?(gb{%w>NAV}mNbdH;F>xMUVLiN$vPa2@aO9h#*sLD~7d;jAP~9FNaJIeaI5gZPV@#0whc@2y`aQ)PN6w1Y$POx&u?2Qxbpwq@GwQ}>y0*}DKV0>g*@m_L z;6=?gWBLQGprt}sgVFn4ue$XNVfdSh$w!M>uEc2fqjqdW#^I3b?CDVO7YEl~#%@!B znvmQ#$*G z;f^Ep2>dRoI?^ONvQC&+D@~&+~4rFojx=RYm)n=2pg~}p`yJdw`;ComnUnnoxICZ2tFkzt1tI9%u7QBjcGVfqiQstB^|#@lfenqEz) znql!>jP{LGW2Ll=xYQa+xeC&jjmsBfgD4|bAX?VcFF;1o)wd4vjY<%{oWWsWiq`wQ z`>46Kn~CL>A6$;g8Cg`H0P!gBAn>Z&mkJ#Wa1XYKs@A?em%pYJSJWH78+*RmkaFk# zVgCT_8_)QENv9*2Vfb55>f!xBD2Ll_RxzRHg$}kFWIRK5jExnzcUyxbO|{?b_UIzB zB<=#Vm%+6(Or=1}8Vdwd&pJGsC23?r@QN5j<4?tZ1{U_xi(3r-db7i&)mWh#M(ztODZY08l6TRDl0hRzsu~RaJ9IOZg-1 zxIeytaz1=^J);^}Lw5@Srbrpdx0bt@N#rbbSls&Qa#)Muh|}13Qp-1(gAHkZT7~hz z3tycsX-|5WDR5es_Ltf{*wW>2S02p!DrGF%hZ4TgS29^@9LKh$7Hf`U+eFDlH zeYHxoapmkaaA6aERGa?*6$5d@-%^u%X7w}w0G9PL{{ZsNpnv|(YP~DuzLg%hT<{)H zw{D6Jp#ZjAJy-i`A%0m6@He1u%B`|DzbYz!lwMy}KKv*kc8WVaFH}SF%YRRGO<>8t zEVs{>>86Cn*c?FPpD-}?Q-cW&wYc^U0{xt@phsf)Q+jGA$ z^-xFh=ii4q7)SEwx3es$7m`50UmswhgbZHKPhAZx(U;ftQBf&;^FK{68$tE(?G(Y; zX}1HA$Cv7>Wu>Q=>h9($S(d7d6DwSORa0Oj3|>S2@dvw&>Mu<)htJ#gBO7CnhJ#ON zpNTO)vlu<+QL&&mZiCN?=l!&NIWRR**+o2tpt=N2U9JS9eEp+e%EwcX>4l5Tt_ z8}Y&MG!c}+xL+=9xREg+d6P$^wq$603AF`q?e;L-rrDLT$MX`su5NVeQU%QbU4B)c zr~d#hS1_+qblL7EmD9_IVu#J$NHqjs%rtAFGH?vnqPf_*PfFU68pX7ZAU_FbmMgLY z;ToF3@XVXs&~l$M^r#nB>u(%!6Ko<~34F2`TehwT47VM<+4qjoLx;5dztcAzQ>1Kn zpPkvEba>i1%*!R=k)zgGBWV0VaK`-THBZZ%;7Lu_O_PxP(NFuxg+zAUJ~OuIn_Zm7 zGdwWHl6i8Zk?K|q#bg8q7NEa;%E=vwJ}Fx;Yzn9Z+WC=17z-xZtc>o?q$mX8<*3wc zm=?Ev044&`A)YTZyA5EeWJMs2Dslxuz4_DN5f1BTx$;Up-dl-cl~cme+!atj_{bI@ zlcTRocp0E*qX(9Q@DnN?JVIVeC0bHEA=NP5pn+i#u;Ow7@fwH;S=BR`uW zI7t*C{sb~gEPxAG3(;F$Nu`1pmLj^FXDl{kG6@yrchCZcC7Vr$1AK6x^Ju!B$9N}- z7=ICVJGhZm3i(SUWu!(eaF3*Vjkr+D*LqajeaBAe@3Ud#9jploG>Xz7jRG`s74Z47 zm9txo29%0KbKDzwO~&T-HAf)k>fgM-_lrv%q+h{{_ZR4-q^Ej`MMN$mzL2o-pYs^s zrSy!yi@LDlK$XS&tSZY-8DU~Upoz%$eKiYIx&3^pWUMCLmZCG}I-9#b^H}_pK*b7?|^-u!ikE`jY3Hk`sCuB3B8)?D`>ATKa$G9o0 z3(FkVfg5DkARXQLijow+#FO{i>8O&8MTK&F4c&Sqf=axR_$7IBrzAZ$<$a_x^v%M` zxHZ7I_=w8a7!@M-;Ao+`gkyQrxBCsumfY;)GVI7g-eHWERK3QK(SwdWs652V?f_;a z06@ne$5VSvSP>*z-k!Q7Z3@dmk9DhXkZ^qfsYyvxWpZUjl&Bw#2-)vZVp6R|Q%Rw* zTjUshG-sEiL%6Cd|R{Cj?igt;_7;>RBmIr}l}px^m% z&!5!=@cil%!#F@E-9>G61O6Uw+&@hQ7t4mnb~5}`z5f7o`thL&$%NYsPscLfyf-fD zBA%5fU7RRyc>1Q|8+J*phjt=|t;zg5sN@3Lqg(R81MM|cjufPwT{sC{$16N~uifIO zf*W$oHsL{HcClGj=J=Z%TPg|38=j@phKIr}!!ZEqUm94GYXL;cGn?+ZXutj=eow7b zdv8%&{{Zao*~0jKx(+|AAN<2+pyjrd_ugJT)}fUnDiD6`=xpHUpXfDg3ArR_w-a-P z&KY-OP*c3zz}gvPbf3%e=g>)391+-CQ2=5nGfv}gh`R%bIa|N88V^C)_3o9r*e=J; zpJOQ7F4!@R8A^oG&l}%G&Nv%qPeHKnx<1>>U(P#dP@qPaEu;W%m^o1fr&*cWL(`&$ zPbwnhPCSF51<8z+EYdfsi*7@!b$9BUXbiB%vqvnBX8~46jgTtD?PX$AjE+@C-^ttm z0LyPT@mMjJWw2)PTLdKtAJGA^sqs2`PnJI~xzc=6LAbnQR-5@}K~lt!Io^Ylk{>&w z?l%PZe?PF>$A!g_UP)N<#lY;Kz;+;&MbyofI0YO{@DyF3sXMV!w!Q39?gwcAUWi&{ zX`+rs1V9i-e(so#r2`|0G+(XlygPZLk>uRGQ#7rm2HB=ZLIDh2STHx?OdzNr^0k#` zaNq*(3q%Eu7_&9#9%v_u5hJ1UT(6eq-X^#=zbgtT))|AupH3K4lvYO!@ATfPs$*{M zKUGL4Y!8?P`d0UukL&tqIg@WEYlj5O5rVA|&QBpbrGNwCnd56;P}cSYaRgrqa&qq^ zLHQ#NN_?~;*R*M7YYt~k7bAK!qjR`i7C6>u;e`|sT!7LO-(f^~{{YN8k29|CMwB6U z_&%S+@Dxot{{XuMa2)E5#cTEw+K&t0?WkDgIpJYt^=E3TdIfJz)54Y|Ykgzi*?Mg) zG3n{fp$QBvarw;(WN-Qtiar=AMY4`GPCPo6evt z+Ppjc(6bdP7#}oZP?6kdCky<`2rCZvsiL+zQ>gBgYPEw{N<2VP!$#jT!*-8-)ew`5 zCs5p}H_qqH%NinZ?|x~C%SF_Bux&-nx7&esY}@#llkcLY+mD*qmTmt4R3zM+?`1aB zZb&-t#L!!}>VG)xS&SV^t07{gt-O%jsTy?#Bw7bd{sC~Um7A!^Iy!(xEqh>eNR{;6FQa_7Qwu{4MjZPHT=mW z!f)ptNFNFD&m4?O+Y-$eF8XX+yZOWBjoyuYW2kA5R*=oNHq~o^r*4A43v;4vIlgoG zmQ{p~qq~lHSr|;GY8aT*D)?7wx3z)9n^h5Coc?fKT6*tL1<5YogQdy`uf0Z41c%Dm4SpLN6x)UuJm{DR zK6v@LO0ep)l8hJ@hiv$ai3S{PMWNe|^B3m{f(7c5E}P%{9?1y=3^gPI_B7!nB!4}8 z+LFg7^A;r>Hm2HbWW;tfRwjqmqkoxSI2(b~*4OagrfhX-wmOK57Qd?0Q1kx)n143S z6U2Igu#*M{rtI+-2LiEzxQYz#{b}=6{{ZHY42WHX76#aT+NGpEbor!bxfZb=9fTLv z_f74HzH~#6oqlTm{SFx0r^SPC!we`bPo4g3P(eFaB;Uu<(a6gqs9P!s&GWa-a;(Tk z)nlF)hDD2}Dk+XcXx~qam1b8s^QA1X`cfE{RCJLEC|6oA1yywXL|afiDh0AX2TaOjP%G@uiyD^-MWoQ(lKD#@G)}Z6b`O69I-;k?!^p zL^+GYdlQX-MJ(jS$RSG<>%P40re-^D+1q<(_0?YiiGk&XnT2x>4Q4lkHt`3vC>I%a! zV^iIdk%a+Ey7_R}e>9m73&WA&e+@FLW7+g+*}R^;5O-kOWQlKpwY(%7Q5s*$qIn~D zdbYvz0t&XZEpeW9!l=<552W=2mn$TNU?(Pkb4b93$?M_zybdN zZlIgwLt+mRYNM@)0}RH%>6LAsX84N{Y$`$O=u=Q8>@&a@haU-lwXmkk1c+Oz8-9zP>B#tBw|~slt3AZAj}f0nZqu0E}qrU2Ge2Dx@Oew zqAr_Ao$hp#B;d~Af(OE6x2lCV1kks`G)MliKC?wwB#$8R9?fWd+Nm9!E*7w`7CgSu zMpFcgt~-gM{{V?=VUxf8qYti@xLC8w1%$GW!6CP@`O^YJbuh!slHIykA5jL0lO4k! zh%5g9#M?sm@6{QmRX@!+7GWDG8bY)RMZad&uv#Ld8)Pg~XRt#50K_S_Sj+J76(d#{ zRWdVey8N1$_Rzx$Gc&YtlBiw2Cez{pn~ka{gViT=bSl0zD}7h6I9v@Qg(VroPCB(| zKd@9a!PS2dBQZg&y;!QM`E6wY07Pcs4#pHMXzJ;ijE?j_Q<|bftHyI%e^x>7v8Z7` z=J0V`d0mIo9U!h=P5xnSVtuzu+bImuER0!OQnsQ_Rt&hBs`5wA)164rsj@w^6(R9@ zW#2^Ksk!jn9!I==wN}~W-H&Qs?aLsRT4)ZwOmo>-|(6Bx2B@ z{)qRB+OG;8Q*3$M;q+7(^N?;mXSO36OP?%Bl^E^BzN%Z%q4Nil`fuQjo-h(b+3x>?7Z6^>c#~Ti03Lx%~6Z2P*^x7#3v9=|Jf{T%I zbLU0FmiePl>oICzz$(~_41hkniX*3w#j=TpCrIuX3Mep1ZX)BjQV}&LS3cS(fqo?0 zkK5{^VGuqp!h7hpxqLCqf8F2JV|-|iK?xhB%GVrtTM8aFeqCevuBboxn9sE>dMkf@ zeZ}lZi3`es}sUOZ*mYd=u?4!FMbzZfwHd(?skpz=i&28O|;2bEy5B zxdir5)1{nh8+its092Egp`xYlm6dpTEnr+7g+Mi*NlSvQ+Sn>4bofAc>_qWE2@>t3utzK|bt7SZ<3)8)Y+;Xg6oHf!YZVr~ zn**%hOGHLypy0k_>BpsY8KF=P-f!`nRwnAu%EXxMkrBuWp30ytk5T-uRohJK8b?0e zAd^Dr5s5{C3O?$v7BW=&rfkXKEJ7r=@P9p>s?uS?wYlL?Y2cdIk1o2m`WZ3x?5 zG6)6mAdo<9E0I%{G+r3;tjPzDR*Q>Vof`EFhCzrF2et9FIZujeZKZ9?3b359I_^Cy zcl(3cd_@N`!q9E=_)^#X(Lv66UT0L8YVyo%&N-F~s|#a(R7X$K1`K~f=4K;cgxPt!|FTE9oCk&$YOlAD!- zKI&4eUr)4fq>IJ)5;*-{+9G)O`g>>`UihC+wveJg!_(-_fyG)996sFsx*~SIexF@H z+By2F%&GKW+&w$$Sa6_b2X7jpedFrN^q30{0}eR)?Lhu?P^o!H2%wXeL%iJf3Jk5! zRr3LdZeBZr2@DV|@h4TT@^%abL6Y02@xt>mf@~ZUs@xk75gLU9MY?Skke6j+rSIyv zIq<44Zlk%d(K7@XXhyNOBZ(%Vf%{ISA=0xmILPWy7f7pSJax#RTynzV#eFtY$b=l0ae+Y5GqHxeio0E-N8@Q!tMKsM)V z(mxZH=R)bjslMX|(-6s%?LVAe{zE;F3FzbU~dnuXQe)J0ud% zvfM_07AW5FlWX{*YsSh!<#SJp?4bFVrtjp1y3b2r%?C{#L#7WVa`&?Nn{YzR2{?dB zG#wU*)*aD6GEox^T6v$G8fHlo0#?|DVoiG}P=7Zh6kAG4N1<%@Vl@V;4|8PrC9%qGhW$rOz) z=>GsOfREtA7LPZ1JB~Vr3w+HKAMD(c0xIHfVSFrj3sdSOqT2N4b)3!bV`@n+S?Q5L zdN)oo#RDJ9?Tfp|5jL_GXLeFgZOvbY#cZ&CZ*co?f+mY#wi*>AeJ(37`%}9 zBnyKBh3Y40$ucFvZrREBN9Cbl7q!7nN13pqftRSs6BPy-fKphP-YZyMz@s=O-l_sR zX6t#?ula41X38C$&gmRsi3%DYa0E(I))2Q^884Y1M8@fXC+tTbx?2`m?h64sDNxLg{cq1=y?GmAEAj9 zSWeB!&%AvGh>0!T-Ur!AU#R2EU$}Z@LFV5*H{)#q{^_zDo4-1P&JJ{wD7FLLN)@JN zi6)oAr?}g)htNtfCX#bQ7XSyh(~VftuS`hq9?o?V2gEQK{*FVws=9Rk9C`dBJn$7H z2{|AVEr%XpWr(Y^Wjg97wxQC^oF%tVfH=7~HW)_DkFtX&aB-8oj`MtOdnxL(Un9!a z_4>Hg0#r$fAyA0rvA5U!vvs9GyRgRD=@)NMs;nx|a85#`l912p@1WgC&_*!PHpP=-(y)Pk*r)bKPgwt*v~=IwIpFR>nmbWvFG`C};gu=k39AWL`O3 zo*4mpD&(3ucKeSlgIYDegp3XG#0!FXQ9N?7n{G#8`n|MPr_0Pn^QqhRqHk5%PpX5V z-DQ!h;{8oilE4{px@RcXo8xpHi|sX84WbpKE=0qAA-b{%6!;CqnKa)=3xv za7iO0VMSfN-4Qeeq-EO2a~vu_GKF0T&bHRYpDZm@bJK2|$uhivs3Xk8=({b9O1C~C zh3!!Q%PKvC8vR16$h9kami<8!s~rk2%_Ve1BYb+3%L?S9u^}>7QiUE zAU8AbrUuVU-AV`rybXg};b6zZ;owu~paZHm{%sz99lC-txg?XH3L;8yzb}93p(f7^ zu>Ci+RY`dIchr(x=Jrc&=IqivfPJ(!38d6=6igsZ_yOHZQ{UU@J(Pl;g|gjC()xDC zte7I)Od=a|438{nxQ0^5o@+u@O+X9hn4)qXf15g+%8v{kKW0AfmA5jHjr>M;eO|mU zqJ`e?H{DlG<9)iDcQk5aSCoV0#d6+MN}*CH!9NHVpvv6EAo83IBtsrnxGQoE2SxJ# z0L+`Ml>S?7;GD?U4XbXu6XAT^J}fXbpfKA#zvr^ZokV`hlo194(~LsdCe zv|CZ7e8x~Y0dwsl+0h0=9^G362FD#nMW0%2e<7a-9CvBdXZDs*(9 z)M-f2t^KXHDC}^SiVV+enVfxb{*%6tJLhDugen+xABc@jpd97KXh|cwSTY)e^P%dwC43XomyR z*!^`ZJ+0eINj16tj{eH4Xp!mZofg^Kn+9S=8b{VI&h-Rg04of~hWs$ZXPy*E76up` zE$g=%+Y8m{Ocx7_*yCe{d`PH^aUZ9;hDhUZJ$Q5FMQ3ga1g=K*J)+r;%TVTlSe65@ z`)!30g}Y0uob4lb+#6rlL&kVRLO®k}$?x`(GpAk+hSgb#_8MTcP3YubRp91g6} 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 S-$gXjM&nOsF5XnmhyU3s&}wu5 literal 0 HcmV?d00001 diff --git a/images/CaseStudy_wink_banner1.jpg b/images/CaseStudy_wink_banner1.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a2b6e8b945b0f4fdf00a495c01498ae5f54cd2b1 GIT binary patch literal 164859 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

&S;V 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

W;RYyib>Gbm?xGTl1N~7 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±Q6n&Ni>b9Rk+)Rd5z7X9P2aPJ+}jIt`# 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

}e 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�slHG0%r%6`mLVZAk%r1-9t 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

`s and ``s. +@table-cell-padding: 8px; +//** Padding for cells in `.table-condensed`. +@table-condensed-cell-padding: 5px; + +//** Default background color used for all tables. +@table-bg: transparent; +//** Background color used for `.table-striped`. +@table-bg-accent: #f9f9f9; +//** Background color used for `.table-hover`. +@table-bg-hover: #f5f5f5; +@table-bg-active: @table-bg-hover; + +//** Border color for table and cell borders. +@table-border-color: #ddd; + + +//== Buttons +// +//## For each of Bootstrap's buttons, define text, background and border color. + +@btn-font-weight: normal; + +@btn-default-color: #333; +@btn-default-bg: #fff; +@btn-default-border: #ccc; + +@btn-primary-color: #fff; +@btn-primary-bg: @brand-primary; +@btn-primary-border: darken(@btn-primary-bg, 5%); + +@btn-success-color: #fff; +@btn-success-bg: @brand-success; +@btn-success-border: darken(@btn-success-bg, 5%); + +@btn-info-color: #fff; +@btn-info-bg: @brand-info; +@btn-info-border: darken(@btn-info-bg, 5%); + +@btn-warning-color: #fff; +@btn-warning-bg: @brand-warning; +@btn-warning-border: darken(@btn-warning-bg, 5%); + +@btn-danger-color: #fff; +@btn-danger-bg: @brand-danger; +@btn-danger-border: darken(@btn-danger-bg, 5%); + +@btn-link-disabled-color: @gray-light; + +// Allows for customizing button radius independently from global border radius +@btn-border-radius-base: @border-radius-base; +@btn-border-radius-large: @border-radius-large; +@btn-border-radius-small: @border-radius-small; + + +//== Forms +// +//## + +//** `` background color +@input-bg: #fff; +//** `` background color +@input-bg-disabled: @gray-lighter; + +//** Text color for ``s +@input-color: @gray; +//** `` border color +@input-border: #ccc; + +// TODO: Rename `@input-border-radius` to `@input-border-radius-base` in v4 +//** Default `.form-control` border radius +// This has no effect on ``s in CSS. +@input-border-radius: @border-radius-base; +//** Large `.form-control` border radius +@input-border-radius-large: @border-radius-large; +//** Small `.form-control` border radius +@input-border-radius-small: @border-radius-small; + +//** Border color for inputs on focus +@input-border-focus: #66afe9; + +//** Placeholder text color +@input-color-placeholder: #999; + +//** Default `.form-control` height +@input-height-base: (@line-height-computed + (@padding-base-vertical * 2) + 2); +//** Large `.form-control` height +@input-height-large: (ceil(@font-size-large * @line-height-large) + (@padding-large-vertical * 2) + 2); +//** Small `.form-control` height +@input-height-small: (floor(@font-size-small * @line-height-small) + (@padding-small-vertical * 2) + 2); + +//** `.form-group` margin +@form-group-margin-bottom: 15px; + +@legend-color: @gray-dark; +@legend-border-color: #e5e5e5; + +//** Background color for textual input addons +@input-group-addon-bg: @gray-lighter; +//** Border color for textual input addons +@input-group-addon-border-color: @input-border; + +//** Disabled cursor for form controls and buttons. +@cursor-disabled: not-allowed; + + +//== Dropdowns +// +//## Dropdown menu container and contents. + +//** Background for the dropdown menu. +@dropdown-bg: #fff; +//** Dropdown menu `border-color`. +@dropdown-border: rgba(0,0,0,.15); +//** Dropdown menu `border-color` **for IE8**. +@dropdown-fallback-border: #ccc; +//** Divider color for between dropdown items. +@dropdown-divider-bg: #e5e5e5; + +//** Dropdown link text color. +@dropdown-link-color: @gray-dark; +//** Hover color for dropdown links. +@dropdown-link-hover-color: darken(@gray-dark, 5%); +//** Hover background for dropdown links. +@dropdown-link-hover-bg: #f5f5f5; + +//** Active dropdown menu item text color. +@dropdown-link-active-color: @component-active-color; +//** Active dropdown menu item background color. +@dropdown-link-active-bg: @component-active-bg; + +//** Disabled dropdown menu item background color. +@dropdown-link-disabled-color: @gray-light; + +//** Text color for headers within dropdown menus. +@dropdown-header-color: @gray-light; + +//** Deprecated `@dropdown-caret-color` as of v3.1.0 +@dropdown-caret-color: #000; + + +//-- Z-index master list +// +// Warning: Avoid customizing these values. They're used for a bird's eye view +// of components dependent on the z-axis and are designed to all work together. +// +// Note: These variables are not generated into the Customizer. + +@zindex-navbar: 1000; +@zindex-dropdown: 1000; +@zindex-popover: 1060; +@zindex-tooltip: 1070; +@zindex-navbar-fixed: 1030; +@zindex-modal-background: 1040; +@zindex-modal: 1050; + + +//== Media queries breakpoints +// +//## Define the breakpoints at which your layout will change, adapting to different screen sizes. + +// Extra small screen / phone +//** Deprecated `@screen-xs` as of v3.0.1 +@screen-xs: 480px; +//** Deprecated `@screen-xs-min` as of v3.2.0 +@screen-xs-min: @screen-xs; +//** Deprecated `@screen-phone` as of v3.0.1 +@screen-phone: @screen-xs-min; + +// Small screen / tablet +//** Deprecated `@screen-sm` as of v3.0.1 +@screen-sm: 768px; +@screen-sm-min: @screen-sm; +//** Deprecated `@screen-tablet` as of v3.0.1 +@screen-tablet: @screen-sm-min; + +// Medium screen / desktop +//** Deprecated `@screen-md` as of v3.0.1 +@screen-md: 992px; +@screen-md-min: @screen-md; +//** Deprecated `@screen-desktop` as of v3.0.1 +@screen-desktop: @screen-md-min; + +// Large screen / wide desktop +//** Deprecated `@screen-lg` as of v3.0.1 +@screen-lg: 1200px; +@screen-lg-min: @screen-lg; +//** Deprecated `@screen-lg-desktop` as of v3.0.1 +@screen-lg-desktop: @screen-lg-min; + +// So media queries don't overlap when required, provide a maximum +@screen-xs-max: (@screen-sm-min - 1); +@screen-sm-max: (@screen-md-min - 1); +@screen-md-max: (@screen-lg-min - 1); + + +//== Grid system +// +//## Define your custom responsive grid. + +//** Number of columns in the grid. +@grid-columns: 12; +//** Padding between columns. Gets divided in half for the left and right. +@grid-gutter-width: 30px; +// Navbar collapse +//** Point at which the navbar becomes uncollapsed. +@grid-float-breakpoint: @screen-sm-min; +//** Point at which the navbar begins collapsing. +@grid-float-breakpoint-max: (@grid-float-breakpoint - 1); + + +//== Container sizes +// +//## Define the maximum width of `.container` for different screen sizes. + +// Small screen / tablet +@container-tablet: (720px + @grid-gutter-width); +//** For `@screen-sm-min` and up. +@container-sm: @container-tablet; + +// Medium screen / desktop +@container-desktop: (940px + @grid-gutter-width); +//** For `@screen-md-min` and up. +@container-md: @container-desktop; + +// Large screen / wide desktop +@container-large-desktop: (1140px + @grid-gutter-width); +//** For `@screen-lg-min` and up. +@container-lg: @container-large-desktop; + + +//== Navbar +// +//## + +// Basics of a navbar +@navbar-height: 50px; +@navbar-margin-bottom: @line-height-computed; +@navbar-border-radius: @border-radius-base; +@navbar-padding-horizontal: floor((@grid-gutter-width / 2)); +@navbar-padding-vertical: ((@navbar-height - @line-height-computed) / 2); +@navbar-collapse-max-height: 340px; + +@navbar-default-color: #777; +@navbar-default-bg: #f8f8f8; +@navbar-default-border: darken(@navbar-default-bg, 6.5%); + +// Navbar links +@navbar-default-link-color: #777; +@navbar-default-link-hover-color: #333; +@navbar-default-link-hover-bg: transparent; +@navbar-default-link-active-color: #555; +@navbar-default-link-active-bg: darken(@navbar-default-bg, 6.5%); +@navbar-default-link-disabled-color: #ccc; +@navbar-default-link-disabled-bg: transparent; + +// Navbar brand label +@navbar-default-brand-color: @navbar-default-link-color; +@navbar-default-brand-hover-color: darken(@navbar-default-brand-color, 10%); +@navbar-default-brand-hover-bg: transparent; + +// Navbar toggle +@navbar-default-toggle-hover-bg: #ddd; +@navbar-default-toggle-icon-bar-bg: #888; +@navbar-default-toggle-border-color: #ddd; + + +//=== Inverted navbar +// Reset inverted navbar basics +@navbar-inverse-color: lighten(@gray-light, 15%); +@navbar-inverse-bg: #222; +@navbar-inverse-border: darken(@navbar-inverse-bg, 10%); + +// Inverted navbar links +@navbar-inverse-link-color: lighten(@gray-light, 15%); +@navbar-inverse-link-hover-color: #fff; +@navbar-inverse-link-hover-bg: transparent; +@navbar-inverse-link-active-color: @navbar-inverse-link-hover-color; +@navbar-inverse-link-active-bg: darken(@navbar-inverse-bg, 10%); +@navbar-inverse-link-disabled-color: #444; +@navbar-inverse-link-disabled-bg: transparent; + +// Inverted navbar brand label +@navbar-inverse-brand-color: @navbar-inverse-link-color; +@navbar-inverse-brand-hover-color: #fff; +@navbar-inverse-brand-hover-bg: transparent; + +// Inverted navbar toggle +@navbar-inverse-toggle-hover-bg: #333; +@navbar-inverse-toggle-icon-bar-bg: #fff; +@navbar-inverse-toggle-border-color: #333; + + +//== Navs +// +//## + +//=== Shared nav styles +@nav-link-padding: 10px 15px; +@nav-link-hover-bg: @gray-lighter; + +@nav-disabled-link-color: @gray-light; +@nav-disabled-link-hover-color: @gray-light; + +//== Tabs +@nav-tabs-border-color: #ddd; + +@nav-tabs-link-hover-border-color: @gray-lighter; + +@nav-tabs-active-link-hover-bg: @body-bg; +@nav-tabs-active-link-hover-color: @gray; +@nav-tabs-active-link-hover-border-color: #ddd; + +@nav-tabs-justified-link-border-color: #ddd; +@nav-tabs-justified-active-link-border-color: @body-bg; + +//== Pills +@nav-pills-border-radius: @border-radius-base; +@nav-pills-active-link-hover-bg: @component-active-bg; +@nav-pills-active-link-hover-color: @component-active-color; + + +//== Pagination +// +//## + +@pagination-color: @link-color; +@pagination-bg: #fff; +@pagination-border: #ddd; + +@pagination-hover-color: @link-hover-color; +@pagination-hover-bg: @gray-lighter; +@pagination-hover-border: #ddd; + +@pagination-active-color: #fff; +@pagination-active-bg: @brand-primary; +@pagination-active-border: @brand-primary; + +@pagination-disabled-color: @gray-light; +@pagination-disabled-bg: #fff; +@pagination-disabled-border: #ddd; + + +//== Pager +// +//## + +@pager-bg: @pagination-bg; +@pager-border: @pagination-border; +@pager-border-radius: 15px; + +@pager-hover-bg: @pagination-hover-bg; + +@pager-active-bg: @pagination-active-bg; +@pager-active-color: @pagination-active-color; + +@pager-disabled-color: @pagination-disabled-color; + + +//== Jumbotron +// +//## + +@jumbotron-padding: 30px; +@jumbotron-color: inherit; +@jumbotron-bg: @gray-lighter; +@jumbotron-heading-color: inherit; +@jumbotron-font-size: ceil((@font-size-base * 1.5)); +@jumbotron-heading-font-size: ceil((@font-size-base * 4.5)); + + +//== Form states and alerts +// +//## Define colors for form feedback states and, by default, alerts. + +@state-success-text: #3c763d; +@state-success-bg: #dff0d8; +@state-success-border: darken(spin(@state-success-bg, -10), 5%); + +@state-info-text: #31708f; +@state-info-bg: #d9edf7; +@state-info-border: darken(spin(@state-info-bg, -10), 7%); + +@state-warning-text: #8a6d3b; +@state-warning-bg: #fcf8e3; +@state-warning-border: darken(spin(@state-warning-bg, -10), 5%); + +@state-danger-text: #a94442; +@state-danger-bg: #f2dede; +@state-danger-border: darken(spin(@state-danger-bg, -10), 5%); + + +//== Tooltips +// +//## + +//** Tooltip max width +@tooltip-max-width: 200px; +//** Tooltip text color +@tooltip-color: #fff; +//** Tooltip background color +@tooltip-bg: #000; +@tooltip-opacity: .9; + +//** Tooltip arrow width +@tooltip-arrow-width: 5px; +//** Tooltip arrow color +@tooltip-arrow-color: @tooltip-bg; + + +//== Popovers +// +//## + +//** Popover body background color +@popover-bg: #fff; +//** Popover maximum width +@popover-max-width: 276px; +//** Popover border color +@popover-border-color: rgba(0,0,0,.2); +//** Popover fallback border color +@popover-fallback-border-color: #ccc; + +//** Popover title background color +@popover-title-bg: darken(@popover-bg, 3%); + +//** Popover arrow width +@popover-arrow-width: 10px; +//** Popover arrow color +@popover-arrow-color: @popover-bg; + +//** Popover outer arrow width +@popover-arrow-outer-width: (@popover-arrow-width + 1); +//** Popover outer arrow color +@popover-arrow-outer-color: fadein(@popover-border-color, 5%); +//** Popover outer arrow fallback color +@popover-arrow-outer-fallback-color: darken(@popover-fallback-border-color, 20%); + + +//== Labels +// +//## + +//** Default label background color +@label-default-bg: @gray-light; +//** Primary label background color +@label-primary-bg: @brand-primary; +//** Success label background color +@label-success-bg: @brand-success; +//** Info label background color +@label-info-bg: @brand-info; +//** Warning label background color +@label-warning-bg: @brand-warning; +//** Danger label background color +@label-danger-bg: @brand-danger; + +//** Default label text color +@label-color: #fff; +//** Default text color of a linked label +@label-link-hover-color: #fff; + + +//== Modals +// +//## + +//** Padding applied to the modal body +@modal-inner-padding: 15px; + +//** Padding applied to the modal title +@modal-title-padding: 15px; +//** Modal title line-height +@modal-title-line-height: @line-height-base; + +//** Background color of modal content area +@modal-content-bg: #fff; +//** Modal content border color +@modal-content-border-color: rgba(0,0,0,.2); +//** Modal content border color **for IE8** +@modal-content-fallback-border-color: #999; + +//** Modal backdrop background color +@modal-backdrop-bg: #000; +//** Modal backdrop opacity +@modal-backdrop-opacity: .5; +//** Modal header border color +@modal-header-border-color: #e5e5e5; +//** Modal footer border color +@modal-footer-border-color: @modal-header-border-color; + +@modal-lg: 900px; +@modal-md: 600px; +@modal-sm: 300px; + + +//== Alerts +// +//## Define alert colors, border radius, and padding. + +@alert-padding: 15px; +@alert-border-radius: @border-radius-base; +@alert-link-font-weight: bold; + +@alert-success-bg: @state-success-bg; +@alert-success-text: @state-success-text; +@alert-success-border: @state-success-border; + +@alert-info-bg: @state-info-bg; +@alert-info-text: @state-info-text; +@alert-info-border: @state-info-border; + +@alert-warning-bg: @state-warning-bg; +@alert-warning-text: @state-warning-text; +@alert-warning-border: @state-warning-border; + +@alert-danger-bg: @state-danger-bg; +@alert-danger-text: @state-danger-text; +@alert-danger-border: @state-danger-border; + + +//== Progress bars +// +//## + +//** Background color of the whole progress component +@progress-bg: #f5f5f5; +//** Progress bar text color +@progress-bar-color: #fff; +//** Variable for setting rounded corners on progress bar. +@progress-border-radius: @border-radius-base; + +//** Default progress bar color +@progress-bar-bg: @brand-primary; +//** Success progress bar color +@progress-bar-success-bg: @brand-success; +//** Warning progress bar color +@progress-bar-warning-bg: @brand-warning; +//** Danger progress bar color +@progress-bar-danger-bg: @brand-danger; +//** Info progress bar color +@progress-bar-info-bg: @brand-info; + + +//== List group +// +//## + +//** Background color on `.list-group-item` +@list-group-bg: #fff; +//** `.list-group-item` border color +@list-group-border: #ddd; +//** List group border radius +@list-group-border-radius: @border-radius-base; + +//** Background color of single list items on hover +@list-group-hover-bg: #f5f5f5; +//** Text color of active list items +@list-group-active-color: @component-active-color; +//** Background color of active list items +@list-group-active-bg: @component-active-bg; +//** Border color of active list elements +@list-group-active-border: @list-group-active-bg; +//** Text color for content within active list items +@list-group-active-text-color: lighten(@list-group-active-bg, 40%); + +//** Text color of disabled list items +@list-group-disabled-color: @gray-light; +//** Background color of disabled list items +@list-group-disabled-bg: @gray-lighter; +//** Text color for content within disabled list items +@list-group-disabled-text-color: @list-group-disabled-color; + +@list-group-link-color: #555; +@list-group-link-hover-color: @list-group-link-color; +@list-group-link-heading-color: #333; + + +//== Panels +// +//## + +@panel-bg: #fff; +@panel-body-padding: 15px; +@panel-heading-padding: 10px 15px; +@panel-footer-padding: @panel-heading-padding; +@panel-border-radius: @border-radius-base; + +//** Border color for elements within panels +@panel-inner-border: #ddd; +@panel-footer-bg: #f5f5f5; + +@panel-default-text: @gray-dark; +@panel-default-border: #ddd; +@panel-default-heading-bg: #f5f5f5; + +@panel-primary-text: #fff; +@panel-primary-border: @brand-primary; +@panel-primary-heading-bg: @brand-primary; + +@panel-success-text: @state-success-text; +@panel-success-border: @state-success-border; +@panel-success-heading-bg: @state-success-bg; + +@panel-info-text: @state-info-text; +@panel-info-border: @state-info-border; +@panel-info-heading-bg: @state-info-bg; + +@panel-warning-text: @state-warning-text; +@panel-warning-border: @state-warning-border; +@panel-warning-heading-bg: @state-warning-bg; + +@panel-danger-text: @state-danger-text; +@panel-danger-border: @state-danger-border; +@panel-danger-heading-bg: @state-danger-bg; + + +//== Thumbnails +// +//## + +//** Padding around the thumbnail image +@thumbnail-padding: 4px; +//** Thumbnail background color +@thumbnail-bg: @body-bg; +//** Thumbnail border color +@thumbnail-border: #ddd; +//** Thumbnail border radius +@thumbnail-border-radius: @border-radius-base; + +//** Custom text color for thumbnail captions +@thumbnail-caption-color: @text-color; +//** Padding around the thumbnail caption +@thumbnail-caption-padding: 9px; + + +//== Wells +// +//## + +@well-bg: #f5f5f5; +@well-border: darken(@well-bg, 7%); + + +//== Badges +// +//## + +@badge-color: #fff; +//** Linked badge text color on hover +@badge-link-hover-color: #fff; +@badge-bg: @gray-light; + +//** Badge text color in active nav link +@badge-active-color: @link-color; +//** Badge background color in active nav link +@badge-active-bg: #fff; + +@badge-font-weight: bold; +@badge-line-height: 1; +@badge-border-radius: 10px; + + +//== Breadcrumbs +// +//## + +@breadcrumb-padding-vertical: 8px; +@breadcrumb-padding-horizontal: 15px; +//** Breadcrumb background color +@breadcrumb-bg: #f5f5f5; +//** Breadcrumb text color +@breadcrumb-color: #ccc; +//** Text color of current page in the breadcrumb +@breadcrumb-active-color: @gray-light; +//** Textual separator for between breadcrumb elements +@breadcrumb-separator: "/"; + + +//== Carousel +// +//## + +@carousel-text-shadow: 0 1px 2px rgba(0,0,0,.6); + +@carousel-control-color: #fff; +@carousel-control-width: 15%; +@carousel-control-opacity: .5; +@carousel-control-font-size: 20px; + +@carousel-indicator-active-bg: #fff; +@carousel-indicator-border-color: #fff; + +@carousel-caption-color: #fff; + + +//== Close +// +//## + +@close-font-weight: bold; +@close-color: #000; +@close-text-shadow: 0 1px 0 #fff; + + +//== Code +// +//## + +@code-color: #c7254e; +@code-bg: #f9f2f4; + +@kbd-color: #fff; +@kbd-bg: #333; + +@pre-bg: #f5f5f5; +@pre-color: @gray-dark; +@pre-border-color: #ccc; +@pre-scrollable-max-height: 340px; + + +//== Type +// +//## + +//** Horizontal offset for forms and lists. +@component-offset-horizontal: 180px; +//** Text muted color +@text-muted: @gray-light; +//** Abbreviations and acronyms border color +@abbr-border-color: @gray-light; +//** Headings small color +@headings-small-color: @gray-light; +//** Blockquote small color +@blockquote-small-color: @gray-light; +//** Blockquote font size +@blockquote-font-size: (@font-size-base * 1.25); +//** Blockquote border color +@blockquote-border-color: @gray-lighter; +//** Page header border color +@page-header-border-color: @gray-lighter; +//** Width of horizontal description list titles +@dl-horizontal-offset: @component-offset-horizontal; +//** Point at which .dl-horizontal becomes horizontal +@dl-horizontal-breakpoint: @grid-float-breakpoint; +//** Horizontal line color. +@hr-border: @gray-lighter; diff --git a/docs/resources-reference/v1.7/node_modules/bootstrap/less/wells.less b/docs/resources-reference/v1.7/node_modules/bootstrap/less/wells.less new file mode 100644 index 0000000000000..15d072b0cd0e3 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/bootstrap/less/wells.less @@ -0,0 +1,29 @@ +// +// Wells +// -------------------------------------------------- + + +// Base class +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: @well-bg; + border: 1px solid @well-border; + border-radius: @border-radius-base; + .box-shadow(inset 0 1px 1px rgba(0,0,0,.05)); + blockquote { + border-color: #ddd; + border-color: rgba(0,0,0,.15); + } +} + +// Sizes +.well-lg { + padding: 24px; + border-radius: @border-radius-large; +} +.well-sm { + padding: 9px; + border-radius: @border-radius-small; +} diff --git a/docs/resources-reference/v1.7/node_modules/bootstrap/package.json b/docs/resources-reference/v1.7/node_modules/bootstrap/package.json new file mode 100644 index 0000000000000..75a2795ec832d --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/bootstrap/package.json @@ -0,0 +1,152 @@ +{ + "_args": [ + [ + { + "raw": "bootstrap@^3.3.7", + "scope": null, + "escapedName": "bootstrap", + "name": "bootstrap", + "rawSpec": "^3.3.7", + "spec": ">=3.3.7 <4.0.0", + "type": "range" + }, + "/brodocs" + ] + ], + "_from": "bootstrap@>=3.3.7 <4.0.0", + "_id": "bootstrap@3.3.7", + "_inCache": true, + "_location": "/bootstrap", + "_nodeVersion": "4.4.7", + "_npmOperationalInternal": { + "host": "packages-16-east.internal.npmjs.com", + "tmp": "tmp/bootstrap-3.3.7.tgz_1469462979154_0.42421583621762693" + }, + "_npmUser": { + "name": "twbs", + "email": "getbootstrap@gmail.com" + }, + "_npmVersion": "2.15.8", + "_phantomChildren": {}, + "_requested": { + "raw": "bootstrap@^3.3.7", + "scope": null, + "escapedName": "bootstrap", + "name": "bootstrap", + "rawSpec": "^3.3.7", + "spec": ">=3.3.7 <4.0.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz", + "_shasum": "5a389394549f23330875a3b150656574f8a9eb71", + "_shrinkwrap": null, + "_spec": "bootstrap@^3.3.7", + "_where": "/brodocs", + "author": { + "name": "Twitter, Inc." + }, + "bugs": { + "url": "https://github.com/twbs/bootstrap/issues" + }, + "dependencies": {}, + "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.", + "devDependencies": { + "btoa": "~1.1.2", + "glob": "~7.0.3", + "grunt": "~1.0.1", + "grunt-autoprefixer": "~3.0.4", + "grunt-contrib-clean": "~1.0.0", + "grunt-contrib-compress": "~1.3.0", + "grunt-contrib-concat": "~1.0.0", + "grunt-contrib-connect": "~1.0.0", + "grunt-contrib-copy": "~1.0.0", + "grunt-contrib-csslint": "~1.0.0", + "grunt-contrib-cssmin": "~1.0.0", + "grunt-contrib-htmlmin": "~1.5.0", + "grunt-contrib-jshint": "~1.0.0", + "grunt-contrib-less": "~1.3.0", + "grunt-contrib-pug": "~1.0.0", + "grunt-contrib-qunit": "~0.7.0", + "grunt-contrib-uglify": "~1.0.0", + "grunt-contrib-watch": "~1.0.0", + "grunt-csscomb": "~3.1.0", + "grunt-exec": "~1.0.0", + "grunt-html": "~8.0.1", + "grunt-jekyll": "~0.4.4", + "grunt-jscs": "~3.0.1", + "grunt-saucelabs": "~9.0.0", + "load-grunt-tasks": "~3.5.0", + "markdown-it": "^7.0.0", + "shelljs": "^0.7.0", + "shx": "^0.1.2", + "time-grunt": "^1.3.0" + }, + "directories": {}, + "dist": { + "shasum": "5a389394549f23330875a3b150656574f8a9eb71", + "tarball": "https://registry.npmjs.org/bootstrap/-/bootstrap-3.3.7.tgz" + }, + "engines": { + "node": ">=0.10.1" + }, + "files": [ + "dist", + "fonts", + "grunt", + "js/*.js", + "less/**/*.less", + "Gruntfile.js", + "LICENSE" + ], + "gitHead": "0b9c4a4007c44201dce9a6cc1a38407005c26c86", + "homepage": "http://getbootstrap.com", + "jspm": { + "main": "js/bootstrap", + "shim": { + "js/bootstrap": { + "deps": "jquery", + "exports": "$" + } + }, + "files": [ + "css", + "fonts", + "js" + ] + }, + "keywords": [ + "css", + "less", + "mobile-first", + "responsive", + "front-end", + "framework", + "web" + ], + "less": "less/bootstrap.less", + "license": "MIT", + "main": "./dist/js/npm", + "maintainers": [ + { + "name": "twbs", + "email": "bigj95t+bsnpm@gmail.com" + } + ], + "name": "bootstrap", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/twbs/bootstrap.git" + }, + "scripts": { + "change-version": "node grunt/change-version.js", + "test": "grunt test", + "update-shrinkwrap": "npm shrinkwrap --dev && shx mv ./npm-shrinkwrap.json ./grunt/npm-shrinkwrap.json" + }, + "style": "dist/css/bootstrap.css", + "version": "3.3.7" +} diff --git a/docs/resources-reference/v1.7/node_modules/colors/LICENSE b/docs/resources-reference/v1.7/node_modules/colors/LICENSE new file mode 100644 index 0000000000000..3de4e33b48242 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/LICENSE @@ -0,0 +1,23 @@ +Original Library + - Copyright (c) Marak Squires + +Additional Functionality + - Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/ReadMe.md b/docs/resources-reference/v1.7/node_modules/colors/ReadMe.md new file mode 100644 index 0000000000000..0326aab340af4 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/ReadMe.md @@ -0,0 +1,178 @@ +# colors.js [![Build Status](https://travis-ci.org/Marak/colors.js.svg?branch=master)](https://travis-ci.org/Marak/colors.js) + +## get color and style in your node.js console + +![Demo](https://raw.githubusercontent.com/Marak/colors.js/master/screenshots/colors.png) + +## Installation + + npm install colors + +## colors and styles! + +### text colors + + - black + - red + - green + - yellow + - blue + - magenta + - cyan + - white + - gray + - grey + +### background colors + + - bgBlack + - bgRed + - bgGreen + - bgYellow + - bgBlue + - bgMagenta + - bgCyan + - bgWhite + +### styles + + - reset + - bold + - dim + - italic + - underline + - inverse + - hidden + - strikethrough + +### extras + + - rainbow + - zebra + - america + - trap + - random + + +## Usage + +By popular demand, `colors` now ships with two types of usages! + +The super nifty way + +```js +var colors = require('colors'); + +console.log('hello'.green); // outputs green text +console.log('i like cake and pies'.underline.red) // outputs red underlined text +console.log('inverse the color'.inverse); // inverses the color +console.log('OMG Rainbows!'.rainbow); // rainbow +console.log('Run the trap'.trap); // Drops the bass + +``` + +or a slightly less nifty way which doesn't extend `String.prototype` + +```js +var colors = require('colors/safe'); + +console.log(colors.green('hello')); // outputs green text +console.log(colors.red.underline('i like cake and pies')) // outputs red underlined text +console.log(colors.inverse('inverse the color')); // inverses the color +console.log(colors.rainbow('OMG Rainbows!')); // rainbow +console.log(colors.trap('Run the trap')); // Drops the bass + +``` + +I prefer the first way. Some people seem to be afraid of extending `String.prototype` and prefer the second way. + +If you are writing good code you will never have an issue with the first approach. If you really don't want to touch `String.prototype`, the second usage will not touch `String` native object. + +## Disabling Colors + +To disable colors you can pass the following arguments in the command line to your application: + +```bash +node myapp.js --no-color +``` + +## Console.log [string substitution](http://nodejs.org/docs/latest/api/console.html#console_console_log_data) + +```js +var name = 'Marak'; +console.log(colors.green('Hello %s'), name); +// outputs -> 'Hello Marak' +``` + +## Custom themes + +### Using standard API + +```js + +var colors = require('colors'); + +colors.setTheme({ + silly: 'rainbow', + input: 'grey', + verbose: 'cyan', + prompt: 'grey', + info: 'green', + data: 'grey', + help: 'cyan', + warn: 'yellow', + debug: 'blue', + error: 'red' +}); + +// outputs red text +console.log("this is an error".error); + +// outputs yellow text +console.log("this is a warning".warn); +``` + +### Using string safe API + +```js +var colors = require('colors/safe'); + +// set single property +var error = colors.red; +error('this is red'); + +// set theme +colors.setTheme({ + silly: 'rainbow', + input: 'grey', + verbose: 'cyan', + prompt: 'grey', + info: 'green', + data: 'grey', + help: 'cyan', + warn: 'yellow', + debug: 'blue', + error: 'red' +}); + +// outputs red text +console.log(colors.error("this is an error")); + +// outputs yellow text +console.log(colors.warn("this is a warning")); + +``` + +You can also combine them: + +```javascript +var colors = require('colors'); + +colors.setTheme({ + custom: ['red', 'underline'] +}); + +console.log('test'.custom); +``` + +*Protip: There is a secret undocumented style in `colors`. If you find the style you can summon him.* diff --git a/docs/resources-reference/v1.7/node_modules/colors/examples/normal-usage.js b/docs/resources-reference/v1.7/node_modules/colors/examples/normal-usage.js new file mode 100644 index 0000000000000..2818741e1f977 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/examples/normal-usage.js @@ -0,0 +1,74 @@ +var colors = require('../lib/index'); + +console.log("First some yellow text".yellow); + +console.log("Underline that text".yellow.underline); + +console.log("Make it bold and red".red.bold); + +console.log(("Double Raindows All Day Long").rainbow) + +console.log("Drop the bass".trap) + +console.log("DROP THE RAINBOW BASS".trap.rainbow) + + +console.log('Chains are also cool.'.bold.italic.underline.red); // styles not widely supported + +console.log('So '.green + 'are'.underline + ' ' + 'inverse'.inverse + ' styles! '.yellow.bold); // styles not widely supported +console.log("Zebras are so fun!".zebra); + +// +// Remark: .strikethrough may not work with Mac OS Terminal App +// +console.log("This is " + "not".strikethrough + " fun."); + +console.log('Background color attack!'.black.bgWhite) +console.log('Use random styles on everything!'.random) +console.log('America, Heck Yeah!'.america) + + +console.log('Setting themes is useful') + +// +// Custom themes +// +console.log('Generic logging theme as JSON'.green.bold.underline); +// Load theme with JSON literal +colors.setTheme({ + silly: 'rainbow', + input: 'grey', + verbose: 'cyan', + prompt: 'grey', + info: 'green', + data: 'grey', + help: 'cyan', + warn: 'yellow', + debug: 'blue', + error: 'red' +}); + +// outputs red text +console.log("this is an error".error); + +// outputs yellow text +console.log("this is a warning".warn); + +// outputs grey text +console.log("this is an input".input); + +console.log('Generic logging theme as file'.green.bold.underline); + +// Load a theme from file +colors.setTheme(__dirname + '/../themes/generic-logging.js'); + +// outputs red text +console.log("this is an error".error); + +// outputs yellow text +console.log("this is a warning".warn); + +// outputs grey text +console.log("this is an input".input); + +//console.log("Don't summon".zalgo) \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/examples/safe-string.js b/docs/resources-reference/v1.7/node_modules/colors/examples/safe-string.js new file mode 100644 index 0000000000000..111b363a4a7a4 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/examples/safe-string.js @@ -0,0 +1,76 @@ +var colors = require('../safe'); + +console.log(colors.yellow("First some yellow text")); + +console.log(colors.yellow.underline("Underline that text")); + +console.log(colors.red.bold("Make it bold and red")); + +console.log(colors.rainbow("Double Raindows All Day Long")) + +console.log(colors.trap("Drop the bass")) + +console.log(colors.rainbow(colors.trap("DROP THE RAINBOW BASS"))); + +console.log(colors.bold.italic.underline.red('Chains are also cool.')); // styles not widely supported + + +console.log(colors.green('So ') + colors.underline('are') + ' ' + colors.inverse('inverse') + colors.yellow.bold(' styles! ')); // styles not widely supported + +console.log(colors.zebra("Zebras are so fun!")); + +console.log("This is " + colors.strikethrough("not") + " fun."); + + +console.log(colors.black.bgWhite('Background color attack!')); +console.log(colors.random('Use random styles on everything!')) +console.log(colors.america('America, Heck Yeah!')); + +console.log('Setting themes is useful') + +// +// Custom themes +// +//console.log('Generic logging theme as JSON'.green.bold.underline); +// Load theme with JSON literal +colors.setTheme({ + silly: 'rainbow', + input: 'grey', + verbose: 'cyan', + prompt: 'grey', + info: 'green', + data: 'grey', + help: 'cyan', + warn: 'yellow', + debug: 'blue', + error: 'red' +}); + +// outputs red text +console.log(colors.error("this is an error")); + +// outputs yellow text +console.log(colors.warn("this is a warning")); + +// outputs grey text +console.log(colors.input("this is an input")); + + +// console.log('Generic logging theme as file'.green.bold.underline); + +// Load a theme from file +colors.setTheme(__dirname + '/../themes/generic-logging.js'); + +// outputs red text +console.log(colors.error("this is an error")); + +// outputs yellow text +console.log(colors.warn("this is a warning")); + +// outputs grey text +console.log(colors.input("this is an input")); + +// console.log(colors.zalgo("Don't summon him")) + + + diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/colors.js b/docs/resources-reference/v1.7/node_modules/colors/lib/colors.js new file mode 100644 index 0000000000000..790ffd43ef515 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/colors.js @@ -0,0 +1,187 @@ +/* + +The MIT License (MIT) + +Original Library + - Copyright (c) Marak Squires + +Additional functionality + - Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var colors = {}; +module['exports'] = colors; + +colors.themes = {}; + +var ansiStyles = colors.styles = require('./styles'); +var defineProps = Object.defineProperties; + +colors.supportsColor = require('./system/supports-colors'); + +if (typeof colors.enabled === "undefined") { + colors.enabled = colors.supportsColor; +} + +colors.stripColors = colors.strip = function(str){ + return ("" + str).replace(/\x1B\[\d+m/g, ''); +}; + + +var stylize = colors.stylize = function stylize (str, style) { + if (!colors.enabled) { + return str+''; + } + + return ansiStyles[style].open + str + ansiStyles[style].close; +} + +var matchOperatorsRe = /[|\\{}()[\]^$+*?.]/g; +var escapeStringRegexp = function (str) { + if (typeof str !== 'string') { + throw new TypeError('Expected a string'); + } + return str.replace(matchOperatorsRe, '\\$&'); +} + +function build(_styles) { + var builder = function builder() { + return applyStyle.apply(builder, arguments); + }; + builder._styles = _styles; + // __proto__ is used because we must return a function, but there is + // no way to create a function with a different prototype. + builder.__proto__ = proto; + return builder; +} + +var styles = (function () { + var ret = {}; + ansiStyles.grey = ansiStyles.gray; + Object.keys(ansiStyles).forEach(function (key) { + ansiStyles[key].closeRe = new RegExp(escapeStringRegexp(ansiStyles[key].close), 'g'); + ret[key] = { + get: function () { + return build(this._styles.concat(key)); + } + }; + }); + return ret; +})(); + +var proto = defineProps(function colors() {}, styles); + +function applyStyle() { + var args = arguments; + var argsLen = args.length; + var str = argsLen !== 0 && String(arguments[0]); + if (argsLen > 1) { + for (var a = 1; a < argsLen; a++) { + str += ' ' + args[a]; + } + } + + if (!colors.enabled || !str) { + return str; + } + + var nestedStyles = this._styles; + + var i = nestedStyles.length; + while (i--) { + var code = ansiStyles[nestedStyles[i]]; + str = code.open + str.replace(code.closeRe, code.open) + code.close; + } + + return str; +} + +function applyTheme (theme) { + for (var style in theme) { + (function(style){ + colors[style] = function(str){ + if (typeof theme[style] === 'object'){ + var out = str; + for (var i in theme[style]){ + out = colors[theme[style][i]](out); + } + return out; + } + return colors[theme[style]](str); + }; + })(style) + } +} + +colors.setTheme = function (theme) { + if (typeof theme === 'string') { + try { + colors.themes[theme] = require(theme); + applyTheme(colors.themes[theme]); + return colors.themes[theme]; + } catch (err) { + console.log(err); + return err; + } + } else { + applyTheme(theme); + } +}; + +function init() { + var ret = {}; + Object.keys(styles).forEach(function (name) { + ret[name] = { + get: function () { + return build([name]); + } + }; + }); + return ret; +} + +var sequencer = function sequencer (map, str) { + var exploded = str.split(""), i = 0; + exploded = exploded.map(map); + return exploded.join(""); +}; + +// custom formatter methods +colors.trap = require('./custom/trap'); +colors.zalgo = require('./custom/zalgo'); + +// maps +colors.maps = {}; +colors.maps.america = require('./maps/america'); +colors.maps.zebra = require('./maps/zebra'); +colors.maps.rainbow = require('./maps/rainbow'); +colors.maps.random = require('./maps/random') + +for (var map in colors.maps) { + (function(map){ + colors[map] = function (str) { + return sequencer(colors.maps[map], str); + } + })(map) +} + +defineProps(colors, init()); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/custom/trap.js b/docs/resources-reference/v1.7/node_modules/colors/lib/custom/trap.js new file mode 100644 index 0000000000000..3f0914373817f --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/custom/trap.js @@ -0,0 +1,45 @@ +module['exports'] = function runTheTrap (text, options) { + var result = ""; + text = text || "Run the trap, drop the bass"; + text = text.split(''); + var trap = { + a: ["\u0040", "\u0104", "\u023a", "\u0245", "\u0394", "\u039b", "\u0414"], + b: ["\u00df", "\u0181", "\u0243", "\u026e", "\u03b2", "\u0e3f"], + c: ["\u00a9", "\u023b", "\u03fe"], + d: ["\u00d0", "\u018a", "\u0500" , "\u0501" ,"\u0502", "\u0503"], + e: ["\u00cb", "\u0115", "\u018e", "\u0258", "\u03a3", "\u03be", "\u04bc", "\u0a6c"], + f: ["\u04fa"], + g: ["\u0262"], + h: ["\u0126", "\u0195", "\u04a2", "\u04ba", "\u04c7", "\u050a"], + i: ["\u0f0f"], + j: ["\u0134"], + k: ["\u0138", "\u04a0", "\u04c3", "\u051e"], + l: ["\u0139"], + m: ["\u028d", "\u04cd", "\u04ce", "\u0520", "\u0521", "\u0d69"], + n: ["\u00d1", "\u014b", "\u019d", "\u0376", "\u03a0", "\u048a"], + o: ["\u00d8", "\u00f5", "\u00f8", "\u01fe", "\u0298", "\u047a", "\u05dd", "\u06dd", "\u0e4f"], + p: ["\u01f7", "\u048e"], + q: ["\u09cd"], + r: ["\u00ae", "\u01a6", "\u0210", "\u024c", "\u0280", "\u042f"], + s: ["\u00a7", "\u03de", "\u03df", "\u03e8"], + t: ["\u0141", "\u0166", "\u0373"], + u: ["\u01b1", "\u054d"], + v: ["\u05d8"], + w: ["\u0428", "\u0460", "\u047c", "\u0d70"], + x: ["\u04b2", "\u04fe", "\u04fc", "\u04fd"], + y: ["\u00a5", "\u04b0", "\u04cb"], + z: ["\u01b5", "\u0240"] + } + text.forEach(function(c){ + c = c.toLowerCase(); + var chars = trap[c] || [" "]; + var rand = Math.floor(Math.random() * chars.length); + if (typeof trap[c] !== "undefined") { + result += trap[c][rand]; + } else { + result += c; + } + }); + return result; + +} diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/custom/zalgo.js b/docs/resources-reference/v1.7/node_modules/colors/lib/custom/zalgo.js new file mode 100644 index 0000000000000..1538c3b49388c --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/custom/zalgo.js @@ -0,0 +1,104 @@ +// please no +module['exports'] = function zalgo(text, options) { + text = text || " he is here "; + var soul = { + "up" : [ + '̍', '̎', '̄', '̅', + '̿', '̑', '̆', '̐', + '͒', '͗', '͑', '̇', + '̈', '̊', '͂', '̓', + '̈', '͊', '͋', '͌', + '̃', '̂', '̌', '͐', + '̀', '́', '̋', '̏', + '̒', '̓', '̔', '̽', + '̉', 'ͣ', 'ͤ', 'ͥ', + 'ͦ', 'ͧ', 'ͨ', 'ͩ', + 'ͪ', 'ͫ', 'ͬ', 'ͭ', + 'ͮ', 'ͯ', '̾', '͛', + '͆', '̚' + ], + "down" : [ + '̖', '̗', '̘', '̙', + '̜', '̝', '̞', '̟', + '̠', '̤', '̥', '̦', + '̩', '̪', '̫', '̬', + '̭', '̮', '̯', '̰', + '̱', '̲', '̳', '̹', + '̺', '̻', '̼', 'ͅ', + '͇', '͈', '͉', '͍', + '͎', '͓', '͔', '͕', + '͖', '͙', '͚', '̣' + ], + "mid" : [ + '̕', '̛', '̀', '́', + '͘', '̡', '̢', '̧', + '̨', '̴', '̵', '̶', + '͜', '͝', '͞', + '͟', '͠', '͢', '̸', + '̷', '͡', ' ҉' + ] + }, + all = [].concat(soul.up, soul.down, soul.mid), + zalgo = {}; + + function randomNumber(range) { + var r = Math.floor(Math.random() * range); + return r; + } + + function is_char(character) { + var bool = false; + all.filter(function (i) { + bool = (i === character); + }); + return bool; + } + + + function heComes(text, options) { + var result = '', counts, l; + options = options || {}; + options["up"] = typeof options["up"] !== 'undefined' ? options["up"] : true; + options["mid"] = typeof options["mid"] !== 'undefined' ? options["mid"] : true; + options["down"] = typeof options["down"] !== 'undefined' ? options["down"] : true; + options["size"] = typeof options["size"] !== 'undefined' ? options["size"] : "maxi"; + text = text.split(''); + for (l in text) { + if (is_char(l)) { + continue; + } + result = result + text[l]; + counts = {"up" : 0, "down" : 0, "mid" : 0}; + switch (options.size) { + case 'mini': + counts.up = randomNumber(8); + counts.mid = randomNumber(2); + counts.down = randomNumber(8); + break; + case 'maxi': + counts.up = randomNumber(16) + 3; + counts.mid = randomNumber(4) + 1; + counts.down = randomNumber(64) + 3; + break; + default: + counts.up = randomNumber(8) + 1; + counts.mid = randomNumber(6) / 2; + counts.down = randomNumber(8) + 1; + break; + } + + var arr = ["up", "mid", "down"]; + for (var d in arr) { + var index = arr[d]; + for (var i = 0 ; i <= counts[index]; i++) { + if (options[index]) { + result = result + soul[index][randomNumber(soul[index].length)]; + } + } + } + } + return result; + } + // don't summon him + return heComes(text, options); +} diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/extendStringPrototype.js b/docs/resources-reference/v1.7/node_modules/colors/lib/extendStringPrototype.js new file mode 100644 index 0000000000000..67374a1c22d10 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/extendStringPrototype.js @@ -0,0 +1,113 @@ +var colors = require('./colors'); + +module['exports'] = function () { + + // + // Extends prototype of native string object to allow for "foo".red syntax + // + var addProperty = function (color, func) { + String.prototype.__defineGetter__(color, func); + }; + + var sequencer = function sequencer (map, str) { + return function () { + var exploded = this.split(""), i = 0; + exploded = exploded.map(map); + return exploded.join(""); + } + }; + + addProperty('strip', function () { + return colors.strip(this); + }); + + addProperty('stripColors', function () { + return colors.strip(this); + }); + + addProperty("trap", function(){ + return colors.trap(this); + }); + + addProperty("zalgo", function(){ + return colors.zalgo(this); + }); + + addProperty("zebra", function(){ + return colors.zebra(this); + }); + + addProperty("rainbow", function(){ + return colors.rainbow(this); + }); + + addProperty("random", function(){ + return colors.random(this); + }); + + addProperty("america", function(){ + return colors.america(this); + }); + + // + // Iterate through all default styles and colors + // + var x = Object.keys(colors.styles); + x.forEach(function (style) { + addProperty(style, function () { + return colors.stylize(this, style); + }); + }); + + function applyTheme(theme) { + // + // Remark: This is a list of methods that exist + // on String that you should not overwrite. + // + var stringPrototypeBlacklist = [ + '__defineGetter__', '__defineSetter__', '__lookupGetter__', '__lookupSetter__', 'charAt', 'constructor', + 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf', 'charCodeAt', + 'indexOf', 'lastIndexof', 'length', 'localeCompare', 'match', 'replace', 'search', 'slice', 'split', 'substring', + 'toLocaleLowerCase', 'toLocaleUpperCase', 'toLowerCase', 'toUpperCase', 'trim', 'trimLeft', 'trimRight' + ]; + + Object.keys(theme).forEach(function (prop) { + if (stringPrototypeBlacklist.indexOf(prop) !== -1) { + console.log('warn: '.red + ('String.prototype' + prop).magenta + ' is probably something you don\'t want to override. Ignoring style name'); + } + else { + if (typeof(theme[prop]) === 'string') { + colors[prop] = colors[theme[prop]]; + addProperty(prop, function () { + return colors[theme[prop]](this); + }); + } + else { + addProperty(prop, function () { + var ret = this; + for (var t = 0; t < theme[prop].length; t++) { + ret = colors[theme[prop][t]](ret); + } + return ret; + }); + } + } + }); + } + + colors.setTheme = function (theme) { + if (typeof theme === 'string') { + try { + colors.themes[theme] = require(theme); + applyTheme(colors.themes[theme]); + return colors.themes[theme]; + } catch (err) { + console.log(err); + return err; + } + } else { + applyTheme(theme); + } + }; + +}; \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/index.js b/docs/resources-reference/v1.7/node_modules/colors/lib/index.js new file mode 100644 index 0000000000000..fd0956d03adb6 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/index.js @@ -0,0 +1,12 @@ +var colors = require('./colors'); +module['exports'] = colors; + +// Remark: By default, colors will add style properties to String.prototype +// +// If you don't wish to extend String.prototype you can do this instead and native String will not be touched +// +// var colors = require('colors/safe); +// colors.red("foo") +// +// +require('./extendStringPrototype')(); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/maps/america.js b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/america.js new file mode 100644 index 0000000000000..a07d8327ff2f4 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/america.js @@ -0,0 +1,12 @@ +var colors = require('../colors'); + +module['exports'] = (function() { + return function (letter, i, exploded) { + if(letter === " ") return letter; + switch(i%3) { + case 0: return colors.red(letter); + case 1: return colors.white(letter) + case 2: return colors.blue(letter) + } + } +})(); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/maps/rainbow.js b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/rainbow.js new file mode 100644 index 0000000000000..a7ce24e6c15ba --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/rainbow.js @@ -0,0 +1,13 @@ +var colors = require('../colors'); + +module['exports'] = (function () { + var rainbowColors = ['red', 'yellow', 'green', 'blue', 'magenta']; //RoY G BiV + return function (letter, i, exploded) { + if (letter === " ") { + return letter; + } else { + return colors[rainbowColors[i++ % rainbowColors.length]](letter); + } + }; +})(); + diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/maps/random.js b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/random.js new file mode 100644 index 0000000000000..5cd101fae2b3d --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/random.js @@ -0,0 +1,8 @@ +var colors = require('../colors'); + +module['exports'] = (function () { + var available = ['underline', 'inverse', 'grey', 'yellow', 'red', 'green', 'blue', 'white', 'cyan', 'magenta']; + return function(letter, i, exploded) { + return letter === " " ? letter : colors[available[Math.round(Math.random() * (available.length - 1))]](letter); + }; +})(); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/maps/zebra.js b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/zebra.js new file mode 100644 index 0000000000000..bf7dcdead0722 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/maps/zebra.js @@ -0,0 +1,5 @@ +var colors = require('../colors'); + +module['exports'] = function (letter, i, exploded) { + return i % 2 === 0 ? letter : colors.inverse(letter); +}; \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/styles.js b/docs/resources-reference/v1.7/node_modules/colors/lib/styles.js new file mode 100644 index 0000000000000..067d59070c2a2 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/styles.js @@ -0,0 +1,77 @@ +/* +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var styles = {}; +module['exports'] = styles; + +var codes = { + reset: [0, 0], + + bold: [1, 22], + dim: [2, 22], + italic: [3, 23], + underline: [4, 24], + inverse: [7, 27], + hidden: [8, 28], + strikethrough: [9, 29], + + black: [30, 39], + red: [31, 39], + green: [32, 39], + yellow: [33, 39], + blue: [34, 39], + magenta: [35, 39], + cyan: [36, 39], + white: [37, 39], + gray: [90, 39], + grey: [90, 39], + + bgBlack: [40, 49], + bgRed: [41, 49], + bgGreen: [42, 49], + bgYellow: [43, 49], + bgBlue: [44, 49], + bgMagenta: [45, 49], + bgCyan: [46, 49], + bgWhite: [47, 49], + + // legacy styles for colors pre v1.0.0 + blackBG: [40, 49], + redBG: [41, 49], + greenBG: [42, 49], + yellowBG: [43, 49], + blueBG: [44, 49], + magentaBG: [45, 49], + cyanBG: [46, 49], + whiteBG: [47, 49] + +}; + +Object.keys(codes).forEach(function (key) { + var val = codes[key]; + var style = styles[key] = []; + style.open = '\u001b[' + val[0] + 'm'; + style.close = '\u001b[' + val[1] + 'm'; +}); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/lib/system/supports-colors.js b/docs/resources-reference/v1.7/node_modules/colors/lib/system/supports-colors.js new file mode 100644 index 0000000000000..3e008aa93a6a6 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/lib/system/supports-colors.js @@ -0,0 +1,61 @@ +/* +The MIT License (MIT) + +Copyright (c) Sindre Sorhus (sindresorhus.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +*/ + +var argv = process.argv; + +module.exports = (function () { + if (argv.indexOf('--no-color') !== -1 || + argv.indexOf('--color=false') !== -1) { + return false; + } + + if (argv.indexOf('--color') !== -1 || + argv.indexOf('--color=true') !== -1 || + argv.indexOf('--color=always') !== -1) { + return true; + } + + if (process.stdout && !process.stdout.isTTY) { + return false; + } + + if (process.platform === 'win32') { + return true; + } + + if ('COLORTERM' in process.env) { + return true; + } + + if (process.env.TERM === 'dumb') { + return false; + } + + if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(process.env.TERM)) { + return true; + } + + return false; +})(); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/package.json b/docs/resources-reference/v1.7/node_modules/colors/package.json new file mode 100644 index 0000000000000..0fc2713fca404 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/package.json @@ -0,0 +1,94 @@ +{ + "_args": [ + [ + { + "raw": "colors@>=0.6.0", + "scope": null, + "escapedName": "colors", + "name": "colors", + "rawSpec": ">=0.6.0", + "spec": ">=0.6.0", + "type": "range" + }, + "/brodocs/node_modules/node-static" + ] + ], + "_from": "colors@>=0.6.0", + "_id": "colors@1.1.2", + "_inCache": true, + "_location": "/colors", + "_nodeVersion": "0.11.13", + "_npmUser": { + "name": "marak", + "email": "marak.squires@gmail.com" + }, + "_npmVersion": "2.1.8", + "_phantomChildren": {}, + "_requested": { + "raw": "colors@>=0.6.0", + "scope": null, + "escapedName": "colors", + "name": "colors", + "rawSpec": ">=0.6.0", + "spec": ">=0.6.0", + "type": "range" + }, + "_requiredBy": [ + "/node-static" + ], + "_resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "_shasum": "168a4701756b6a7f51a12ce0c97bfa28c084ed63", + "_shrinkwrap": null, + "_spec": "colors@>=0.6.0", + "_where": "/brodocs/node_modules/node-static", + "author": { + "name": "Marak Squires" + }, + "bugs": { + "url": "https://github.com/Marak/colors.js/issues" + }, + "dependencies": {}, + "description": "get colors in your node.js console", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "168a4701756b6a7f51a12ce0c97bfa28c084ed63", + "tarball": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz" + }, + "engines": { + "node": ">=0.1.90" + }, + "files": [ + "examples", + "lib", + "LICENSE", + "safe.js", + "themes" + ], + "gitHead": "8bf2ad9fa695dcb30b7e9fd83691b139fd6655c4", + "homepage": "https://github.com/Marak/colors.js", + "keywords": [ + "ansi", + "terminal", + "colors" + ], + "license": "MIT", + "main": "lib", + "maintainers": [ + { + "name": "marak", + "email": "marak.squires@gmail.com" + } + ], + "name": "colors", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+ssh://git@github.com/Marak/colors.js.git" + }, + "scripts": { + "test": "node tests/basic-test.js && node tests/safe-test.js" + }, + "version": "1.1.2" +} diff --git a/docs/resources-reference/v1.7/node_modules/colors/safe.js b/docs/resources-reference/v1.7/node_modules/colors/safe.js new file mode 100644 index 0000000000000..a6a1f3ab47f06 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/safe.js @@ -0,0 +1,9 @@ +// +// Remark: Requiring this file will use the "safe" colors API which will not touch String.prototype +// +// var colors = require('colors/safe); +// colors.red("foo") +// +// +var colors = require('./lib/colors'); +module['exports'] = colors; \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/colors/themes/generic-logging.js b/docs/resources-reference/v1.7/node_modules/colors/themes/generic-logging.js new file mode 100644 index 0000000000000..571972c1baa82 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/colors/themes/generic-logging.js @@ -0,0 +1,12 @@ +module['exports'] = { + silly: 'rainbow', + input: 'grey', + verbose: 'cyan', + prompt: 'grey', + info: 'green', + data: 'grey', + help: 'cyan', + warn: 'yellow', + debug: 'blue', + error: 'red' +}; \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/ejs/Jakefile b/docs/resources-reference/v1.7/node_modules/ejs/Jakefile new file mode 100644 index 0000000000000..6c93763e23c3c --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/Jakefile @@ -0,0 +1,69 @@ +var execSync = require('child_process').execSync; +var exec = function (cmd) { + execSync(cmd, {stdio: 'inherit'}); +}; + +/* global jake, task, desc, publishTask */ + +task('build', ['lint', 'clean', 'browserify', 'minify'], function () { + console.log('Build completed.'); +}); + +desc('Cleans browerified/minified files and package files'); +task('clean', ['clobber'], function () { + jake.rmRf('./ejs.js'); + jake.rmRf('./ejs.min.js'); + console.log('Cleaned up compiled files.'); +}); + +desc('Lints the source code'); +task('lint', function () { + exec('./node_modules/.bin/eslint \"**/*.js\" Jakefile'); + console.log('Linting completed.'); +}); + +task('browserify', function () { + exec('./node_modules/browserify/bin/cmd.js --standalone ejs lib/ejs.js > ejs.js'); + console.log('Browserification completed.'); +}); + +task('minify', function () { + exec('./node_modules/uglify-js/bin/uglifyjs ejs.js > ejs.min.js'); + console.log('Minification completed.'); +}); + +task('doc', function (dev) { + jake.rmRf('out'); + var p = dev ? '-p' : ''; + exec('./node_modules/.bin/jsdoc ' + p + ' -c jsdoc.json lib/* docs/jsdoc/*'); + console.log('Documentation generated.'); +}); + +task('docPublish', ['doc'], function () { + console.log('Pushing docs to gh-pages...'); + exec('./node_modules/.bin/git-directory-deploy --directory out/'); + console.log('Docs published to gh-pages.'); +}); + +task('test', ['lint'], function () { + exec('./node_modules/.bin/mocha'); +}); + +publishTask('ejs', ['build'], function () { + this.packageFiles.include([ + 'Jakefile', + 'README.md', + 'LICENSE', + 'package.json', + 'ejs.js', + 'ejs.min.js', + 'lib/**', + 'test/**' + ]); +}); + +jake.Task.publish.on('complete', function () { + console.log('Updating hosted docs...'); + console.log('If this fails, run jake docPublish to re-try.'); + jake.Task.docPublish.invoke(); +}); diff --git a/docs/resources-reference/v1.7/node_modules/ejs/LICENSE b/docs/resources-reference/v1.7/node_modules/ejs/LICENSE new file mode 100644 index 0000000000000..d645695673349 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/LICENSE @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/docs/resources-reference/v1.7/node_modules/ejs/README.md b/docs/resources-reference/v1.7/node_modules/ejs/README.md new file mode 100644 index 0000000000000..1dd860f404976 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/README.md @@ -0,0 +1,241 @@ +# EJS + +Embedded JavaScript templates + +[![Build Status](https://img.shields.io/travis/mde/ejs/master.svg?style=flat)](https://travis-ci.org/mde/ejs) +[![Developing Dependencies](https://img.shields.io/david/dev/mde/ejs.svg?style=flat)](https://david-dm.org/mde/ejs?type=dev) + +## Installation + +```bash +$ npm install ejs +``` + +## Features + + * Control flow with `<% %>` + * Escaped output with `<%= %>` (escape function configurable) + * Unescaped raw output with `<%- %>` + * Newline-trim mode ('newline slurping') with `-%>` ending tag + * Whitespace-trim mode (slurp all whitespace) for control flow with `<%_ _%>` + * Custom delimiters (e.g., use `` instead of `<% %>`) + * Includes + * Client-side support + * Static caching of intermediate JavaScript + * Static caching of templates + * Complies with the [Express](http://expressjs.com) view system + +## Example + +```html +<% if (user) { %> +

<%= user.name %>

+<% } %> +``` + +Try EJS online at: https://ionicabizau.github.io/ejs-playground/. + +## Usage + +```javascript +var template = ejs.compile(str, options); +template(data); +// => Rendered HTML string + +ejs.render(str, data, options); +// => Rendered HTML string + +ejs.renderFile(filename, data, options, function(err, str){ + // str => Rendered HTML string +}); +``` + +It is also possible to use `ejs.render(dataAndOptions);` where you pass +everything in a single object. In that case, you'll end up with local variables +for all the passed options. However, be aware that your code could break if we +add an option with the same name as one of your data object's properties. +Therefore, we do not recommend using this shortcut. + +## Options + + - `cache` Compiled functions are cached, requires `filename` + - `filename` The name of the file being rendered. Not required if you + are using `renderFile()`. Used by `cache` to key caches, and for includes. + - `root` Set project root for includes with an absolute path (/file.ejs). + - `context` Function execution context + - `compileDebug` When `false` no debug instrumentation is compiled + - `client` When `true`, compiles a function that can be rendered + in the browser without needing to load the EJS Runtime + ([ejs.min.js](https://github.com/mde/ejs/releases/latest)). + - `delimiter` Character to use with angle brackets for open/close + - `debug` Output generated function body + - `strict` When set to `true`, generated function is in strict mode + - `_with` Whether or not to use `with() {}` constructs. If `false` then the locals will be stored in the `locals` object. Set to `false` in strict mode. + - `localsName` Name to use for the object storing local variables when not using `with` Defaults to `locals` + - `rmWhitespace` Remove all safe-to-remove whitespace, including leading + and trailing whitespace. It also enables a safer version of `-%>` line + slurping for all scriptlet tags (it does not strip new lines of tags in + the middle of a line). + - `escape` The escaping function used with `<%=` construct. It is + used in rendering and is `.toString()`ed in the generation of client functions. (By default escapes XML). + +This project uses [JSDoc](http://usejsdoc.org/). For the full public API +documentation, clone the repository and run `npm run doc`. This will run JSDoc +with the proper options and output the documentation to `out/`. If you want +the both the public & private API docs, run `npm run devdoc` instead. + +## Tags + + - `<%` 'Scriptlet' tag, for control-flow, no output + - `<%_` 'Whitespace Slurping' Scriptlet tag, strips all whitespace before it + - `<%=` Outputs the value into the template (escaped) + - `<%-` Outputs the unescaped value into the template + - `<%#` Comment tag, no execution, no output + - `<%%` Outputs a literal '<%' + - `%%>` Outputs a literal '%>' + - `%>` Plain ending tag + - `-%>` Trim-mode ('newline slurp') tag, trims following newline + - `_%>` 'Whitespace Slurping' ending tag, removes all whitespace after it + +For the full syntax documentation, please see [docs/syntax.md](https://github.com/mde/ejs/blob/master/docs/syntax.md). + +## Includes + +Includes either have to be an absolute path, or, if not, are assumed as +relative to the template with the `include` call. For example if you are +including `./views/user/show.ejs` from `./views/users.ejs` you would +use `<%- include('user/show') %>`. + +You must specify the `filename` option for the template with the `include` +call unless you are using `renderFile()`. + +You'll likely want to use the raw output tag (`<%-`) with your include to avoid +double-escaping the HTML output. + +```html +
    + <% users.forEach(function(user){ %> + <%- include('user/show', {user: user}) %> + <% }); %> +
+``` + +Includes are inserted at runtime, so you can use variables for the path in the +`include` call (for example `<%- include(somePath) %>`). Variables in your +top-level data object are available to all your includes, but local variables +need to be passed down. + +NOTE: Include preprocessor directives (`<% include user/show %>`) are +still supported. + +## Custom delimiters + +Custom delimiters can be applied on a per-template basis, or globally: + +```javascript +var ejs = require('ejs'), + users = ['geddy', 'neil', 'alex']; + +// Just one template +ejs.render('', {users: users}, {delimiter: '?'}); +// => 'geddy | neil | alex' + +// Or globally +ejs.delimiter = '$'; +ejs.render('<$= users.join(" | "); $>', {users: users}); +// => 'geddy | neil | alex' +``` + +## Caching + +EJS ships with a basic in-process cache for caching the intermediate JavaScript +functions used to render templates. It's easy to plug in LRU caching using +Node's `lru-cache` library: + +```javascript +var ejs = require('ejs') + , LRU = require('lru-cache'); +ejs.cache = LRU(100); // LRU cache with 100-item limit +``` + +If you want to clear the EJS cache, call `ejs.clearCache`. If you're using the +LRU cache and need a different limit, simple reset `ejs.cache` to a new instance +of the LRU. + +## Layouts + +EJS does not specifically support blocks, but layouts can be implemented by +including headers and footers, like so: + + +```html +<%- include('header') -%> +

+ Title +

+

+ My page +

+<%- include('footer') -%> +``` + +## Client-side support + +Go to the [Latest Release](https://github.com/mde/ejs/releases/latest), download +`./ejs.js` or `./ejs.min.js`. Alternately, you can compile it yourself by cloning +the repository and running `jake build` (or `$(npm bin)/jake build` if jake is +not installed globally). + +Include one of these files on your page, and `ejs` should be available globally. + +### Example + +```html +
+ + +``` + +### Caveats + +Most of EJS will work as expected; however, there are a few things to note: + +1. Obviously, since you do not have access to the filesystem, `ejs.renderFile()` won't work. +2. For the same reason, `include`s do not work unless you use an `IncludeCallback`. Here is an example: + ```javascript + var str = "Hello <%= include('file', {person: 'John'}); %>", + fn = ejs.compile(str, {client: true}); + + fn(data, null, function(path, d){ // IncludeCallback + // path -> 'file' + // d -> {person: 'John'} + // Put your code here + // Return the contents of file as a string + }); // returns rendered string + ``` + +## Related projects + +There are a number of implementations of EJS: + + * TJ's implementation, the v1 of this library: https://github.com/tj/ejs + * Jupiter Consulting's EJS: http://www.embeddedjs.com/ + * EJS Embedded JavaScript Framework on Google Code: https://code.google.com/p/embeddedjavascript/ + * Sam Stephenson's Ruby implementation: https://rubygems.org/gems/ejs + * Erubis, an ERB implementation which also runs JavaScript: http://www.kuwata-lab.com/erubis/users-guide.04.html#lang-javascript + +## License + +Licensed under the Apache License, Version 2.0 +() + +- - - +EJS Embedded JavaScript templates copyright 2112 +mde@fleegix.org. diff --git a/docs/resources-reference/v1.7/node_modules/ejs/ejs.js b/docs/resources-reference/v1.7/node_modules/ejs/ejs.js new file mode 100644 index 0000000000000..e86cf04b4f2d3 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/ejs.js @@ -0,0 +1,1425 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ejs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o + * @author Tiancheng "Timothy" Gu + * @project EJS + * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0} + */ + +/** + * EJS internal functions. + * + * Technically this "module" lies in the same file as {@link module:ejs}, for + * the sake of organization all the private functions re grouped into this + * module. + * + * @module ejs-internal + * @private + */ + +/** + * Embedded JavaScript templating engine. + * + * @module ejs + * @public + */ + +var fs = require('fs'); +var path = require('path'); +var utils = require('./utils'); + +var scopeOptionWarned = false; +var _VERSION_STRING = require('../package.json').version; +var _DEFAULT_DELIMITER = '%'; +var _DEFAULT_LOCALS_NAME = 'locals'; +var _NAME = 'ejs'; +var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)'; +var _OPTS = ['delimiter', 'scope', 'context', 'debug', 'compileDebug', + 'client', '_with', 'rmWhitespace', 'strict', 'filename']; +var _BOM = /^\uFEFF/; + +/** + * EJS template function cache. This can be a LRU object from lru-cache NPM + * module. By default, it is {@link module:utils.cache}, a simple in-process + * cache that grows continuously. + * + * @type {Cache} + */ + +exports.cache = utils.cache; + +/** + * Name of the object containing the locals. + * + * This variable is overridden by {@link Options}`.localsName` if it is not + * `undefined`. + * + * @type {String} + * @public + */ + +exports.localsName = _DEFAULT_LOCALS_NAME; + +/** + * Get the path to the included file from the parent file path and the + * specified path. + * + * @param {String} name specified path + * @param {String} filename parent file path + * @param {Boolean} isDir parent file path whether is directory + * @return {String} + */ +exports.resolveInclude = function(name, filename, isDir) { + var dirname = path.dirname; + var extname = path.extname; + var resolve = path.resolve; + var includePath = resolve(isDir ? filename : dirname(filename), name); + var ext = extname(name); + if (!ext) { + includePath += '.ejs'; + } + return includePath; +}; + +/** + * Get the path to the included file by Options + * + * @param {String} path specified path + * @param {Options} options compilation options + * @return {String} + */ +function getIncludePath(path, options){ + var includePath; + if (path.charAt(0) == '/') { + includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true); + } + else { + if (!options.filename) { + throw new Error('`include` use relative path requires the \'filename\' option.'); + } + includePath = exports.resolveInclude(path, options.filename); + } + return includePath; +} + +/** + * Get the template from a string or a file, either compiled on-the-fly or + * read from cache (if enabled), and cache the template if needed. + * + * If `template` is not set, the file specified in `options.filename` will be + * read. + * + * If `options.cache` is true, this function reads the file from + * `options.filename` so it must be set prior to calling this function. + * + * @memberof module:ejs-internal + * @param {Options} options compilation options + * @param {String} [template] template source + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned. + * @static + */ + +function handleCache(options, template) { + var func; + var filename = options.filename; + var hasTemplate = arguments.length > 1; + + if (options.cache) { + if (!filename) { + throw new Error('cache option requires a filename'); + } + func = exports.cache.get(filename); + if (func) { + return func; + } + if (!hasTemplate) { + template = fs.readFileSync(filename).toString().replace(_BOM, ''); + } + } + else if (!hasTemplate) { + // istanbul ignore if: should not happen at all + if (!filename) { + throw new Error('Internal EJS error: no file name or template ' + + 'provided'); + } + template = fs.readFileSync(filename).toString().replace(_BOM, ''); + } + func = exports.compile(template, options); + if (options.cache) { + exports.cache.set(filename, func); + } + return func; +} + +/** + * Get the template function. + * + * If `options.cache` is `true`, then the template is cached. + * + * @memberof module:ejs-internal + * @param {String} path path for the specified file + * @param {Options} options compilation options + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned + * @static + */ + +function includeFile(path, options) { + var opts = utils.shallowCopy({}, options); + opts.filename = getIncludePath(path, opts); + return handleCache(opts); +} + +/** + * Get the JavaScript source of an included file. + * + * @memberof module:ejs-internal + * @param {String} path path for the specified file + * @param {Options} options compilation options + * @return {Object} + * @static + */ + +function includeSource(path, options) { + var opts = utils.shallowCopy({}, options); + var includePath; + var template; + includePath = getIncludePath(path,opts); + template = fs.readFileSync(includePath).toString().replace(_BOM, ''); + opts.filename = includePath; + var templ = new Template(template, opts); + templ.generateSource(); + return { + source: templ.source, + filename: includePath, + template: template + }; +} + +/** + * Re-throw the given `err` in context to the `str` of ejs, `filename`, and + * `lineno`. + * + * @implements RethrowCallback + * @memberof module:ejs-internal + * @param {Error} err Error object + * @param {String} str EJS source + * @param {String} filename file name of the EJS file + * @param {String} lineno line number of the error + * @static + */ + +function rethrow(err, str, flnm, lineno){ + var lines = str.split('\n'); + var start = Math.max(lineno - 3, 0); + var end = Math.min(lines.length, lineno + 3); + var filename = utils.escapeXML(flnm); + // Error context + var context = lines.slice(start, end).map(function (line, i){ + var curr = i + start + 1; + return (curr == lineno ? ' >> ' : ' ') + + curr + + '| ' + + line; + }).join('\n'); + + // Alter exception message + err.path = filename; + err.message = (filename || 'ejs') + ':' + + lineno + '\n' + + context + '\n\n' + + err.message; + + throw err; +} + +function stripSemi(str) { + return str.replace(/;(\s*$)/, '$1'); +} + +/** + * Compile the given `str` of ejs into a template function. + * + * @param {String} template EJS template + * + * @param {Options} opts compilation options + * + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `opts.client`, either type might be returned. + * @public + */ + +exports.compile = function compile(template, opts) { + var templ; + + // v1 compat + // 'scope' is 'context' + // FIXME: Remove this in a future version + if (opts && opts.scope) { + if (!scopeOptionWarned){ + console.warn('`scope` option is deprecated and will be removed in EJS 3'); + scopeOptionWarned = true; + } + if (!opts.context) { + opts.context = opts.scope; + } + delete opts.scope; + } + templ = new Template(template, opts); + return templ.compile(); +}; + +/** + * Render the given `template` of ejs. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} template EJS template + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @return {String} + * @public + */ + +exports.render = function (template, d, o) { + var data = d || {}; + var opts = o || {}; + + // No options object -- if there are optiony names + // in the data, copy them to options + if (arguments.length == 2) { + utils.shallowCopyFromList(opts, data, _OPTS); + } + + return handleCache(opts, template)(data); +}; + +/** + * Render an EJS file at the given `path` and callback `cb(err, str)`. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} path path to the EJS file + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @param {RenderFileCallback} cb callback + * @public + */ + +exports.renderFile = function () { + var args = Array.prototype.slice.call(arguments); + var filename = args.shift(); + var cb = args.pop(); + var data = args.shift() || {}; + var opts = args.pop() || {}; + var optsKeys =_OPTS.slice(); + var result; + + // Don't pollute passed in opts obj with new vals + opts = utils.shallowCopy({}, opts); + + // We don't allow 'cache' option to be passed in the data obj + // for the normal `render` call, but this is where Expres puts it + // so we make an exception for `renderFile` + optsKeys.push('cache'); + + // No options object -- if there are optiony names + // in the data, copy them to options + if (arguments.length == 3) { + // Express 4 + if (data.settings && data.settings['view options']) { + utils.shallowCopyFromList(opts, data.settings['view options'], optsKeys); + } + // Express 3 and lower + else { + utils.shallowCopyFromList(opts, data, optsKeys); + } + } + opts.filename = filename; + + try { + result = handleCache(opts)(data); + } + catch(err) { + return cb(err); + } + return cb(null, result); +}; + +/** + * Clear intermediate JavaScript cache. Calls {@link Cache#reset}. + * @public + */ + +exports.clearCache = function () { + exports.cache.reset(); +}; + +function Template(text, opts) { + opts = opts || {}; + var options = {}; + this.templateText = text; + this.mode = null; + this.truncate = false; + this.currentLine = 1; + this.source = ''; + this.dependencies = []; + options.client = opts.client || false; + options.escapeFunction = opts.escape || utils.escapeXML; + options.compileDebug = opts.compileDebug !== false; + options.debug = !!opts.debug; + options.filename = opts.filename; + options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER; + options.strict = opts.strict || false; + options.context = opts.context; + options.cache = opts.cache || false; + options.rmWhitespace = opts.rmWhitespace; + options.root = opts.root; + options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME; + + if (options.strict) { + options._with = false; + } + else { + options._with = typeof opts._with != 'undefined' ? opts._with : true; + } + + this.opts = options; + + this.regex = this.createRegex(); +} + +Template.modes = { + EVAL: 'eval', + ESCAPED: 'escaped', + RAW: 'raw', + COMMENT: 'comment', + LITERAL: 'literal' +}; + +Template.prototype = { + createRegex: function () { + var str = _REGEX_STRING; + var delim = utils.escapeRegExpChars(this.opts.delimiter); + str = str.replace(/%/g, delim); + return new RegExp(str); + }, + + compile: function () { + var src; + var fn; + var opts = this.opts; + var prepended = ''; + var appended = ''; + var escape = opts.escapeFunction; + + if (!this.source) { + this.generateSource(); + prepended += ' var __output = [], __append = __output.push.bind(__output);' + '\n'; + if (opts._with !== false) { + prepended += ' with (' + opts.localsName + ' || {}) {' + '\n'; + appended += ' }' + '\n'; + } + appended += ' return __output.join("");' + '\n'; + this.source = prepended + this.source + appended; + } + + if (opts.compileDebug) { + src = 'var __line = 1' + '\n' + + ' , __lines = ' + JSON.stringify(this.templateText) + '\n' + + ' , __filename = ' + (opts.filename ? + JSON.stringify(opts.filename) : 'undefined') + ';' + '\n' + + 'try {' + '\n' + + this.source + + '} catch (e) {' + '\n' + + ' rethrow(e, __lines, __filename, __line);' + '\n' + + '}' + '\n'; + } + else { + src = this.source; + } + + if (opts.debug) { + console.log(src); + } + + if (opts.client) { + src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src; + if (opts.compileDebug) { + src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src; + } + } + + if (opts.strict) { + src = '"use strict";\n' + src; + } + + try { + fn = new Function(opts.localsName + ', escape, include, rethrow', src); + } + catch(e) { + // istanbul ignore else + if (e instanceof SyntaxError) { + if (opts.filename) { + e.message += ' in ' + opts.filename; + } + e.message += ' while compiling ejs\n\n'; + e.message += 'If the above error is not helpful, you may want to try EJS-Lint:\n'; + e.message += 'https://github.com/RyanZim/EJS-Lint'; + } + throw e; + } + + if (opts.client) { + fn.dependencies = this.dependencies; + return fn; + } + + // Return a callable function which will execute the function + // created by the source-code, with the passed data as locals + // Adds a local `include` function which allows full recursive include + var returnedFn = function (data) { + var include = function (path, includeData) { + var d = utils.shallowCopy({}, data); + if (includeData) { + d = utils.shallowCopy(d, includeData); + } + return includeFile(path, opts)(d); + }; + return fn.apply(opts.context, [data || {}, escape, include, rethrow]); + }; + returnedFn.dependencies = this.dependencies; + return returnedFn; + }, + + generateSource: function () { + var opts = this.opts; + + if (opts.rmWhitespace) { + // Have to use two separate replace here as `^` and `$` operators don't + // work well with `\r`. + this.templateText = + this.templateText.replace(/\r/g, '').replace(/^\s+|\s+$/gm, ''); + } + + // Slurp spaces and tabs before <%_ and after _%> + this.templateText = + this.templateText.replace(/[ \t]*<%_/gm, '<%_').replace(/_%>[ \t]*/gm, '_%>'); + + var self = this; + var matches = this.parseTemplateText(); + var d = this.opts.delimiter; + + if (matches && matches.length) { + matches.forEach(function (line, index) { + var opening; + var closing; + var include; + var includeOpts; + var includeObj; + var includeSrc; + // If this is an opening tag, check for closing tags + // FIXME: May end up with some false positives here + // Better to store modes as k/v with '<' + delimiter as key + // Then this can simply check against the map + if ( line.indexOf('<' + d) === 0 // If it is a tag + && line.indexOf('<' + d + d) !== 0) { // and is not escaped + closing = matches[index + 2]; + if (!(closing == d + '>' || closing == '-' + d + '>' || closing == '_' + d + '>')) { + throw new Error('Could not find matching close tag for "' + line + '".'); + } + } + // HACK: backward-compat `include` preprocessor directives + if ((include = line.match(/^\s*include\s+(\S+)/))) { + opening = matches[index - 1]; + // Must be in EVAL or RAW mode + if (opening && (opening == '<' + d || opening == '<' + d + '-' || opening == '<' + d + '_')) { + includeOpts = utils.shallowCopy({}, self.opts); + includeObj = includeSource(include[1], includeOpts); + if (self.opts.compileDebug) { + includeSrc = + ' ; (function(){' + '\n' + + ' var __line = 1' + '\n' + + ' , __lines = ' + JSON.stringify(includeObj.template) + '\n' + + ' , __filename = ' + JSON.stringify(includeObj.filename) + ';' + '\n' + + ' try {' + '\n' + + includeObj.source + + ' } catch (e) {' + '\n' + + ' rethrow(e, __lines, __filename, __line);' + '\n' + + ' }' + '\n' + + ' ; }).call(this)' + '\n'; + }else{ + includeSrc = ' ; (function(){' + '\n' + includeObj.source + + ' ; }).call(this)' + '\n'; + } + self.source += includeSrc; + self.dependencies.push(exports.resolveInclude(include[1], + includeOpts.filename)); + return; + } + } + self.scanLine(line); + }); + } + + }, + + parseTemplateText: function () { + var str = this.templateText; + var pat = this.regex; + var result = pat.exec(str); + var arr = []; + var firstPos; + + while (result) { + firstPos = result.index; + + if (firstPos !== 0) { + arr.push(str.substring(0, firstPos)); + str = str.slice(firstPos); + } + + arr.push(result[0]); + str = str.slice(result[0].length); + result = pat.exec(str); + } + + if (str) { + arr.push(str); + } + + return arr; + }, + + scanLine: function (line) { + var self = this; + var d = this.opts.delimiter; + var newLineCount = 0; + + function _addOutput() { + if (self.truncate) { + // Only replace single leading linebreak in the line after + // -%> tag -- this is the single, trailing linebreak + // after the tag that the truncation mode replaces + // Handle Win / Unix / old Mac linebreaks -- do the \r\n + // combo first in the regex-or + line = line.replace(/^(?:\r\n|\r|\n)/, ''); + self.truncate = false; + } + else if (self.opts.rmWhitespace) { + // rmWhitespace has already removed trailing spaces, just need + // to remove linebreaks + line = line.replace(/^\n/, ''); + } + if (!line) { + return; + } + + // Preserve literal slashes + line = line.replace(/\\/g, '\\\\'); + + // Convert linebreaks + line = line.replace(/\n/g, '\\n'); + line = line.replace(/\r/g, '\\r'); + + // Escape double-quotes + // - this will be the delimiter during execution + line = line.replace(/"/g, '\\"'); + self.source += ' ; __append("' + line + '")' + '\n'; + } + + newLineCount = (line.split('\n').length - 1); + + switch (line) { + case '<' + d: + case '<' + d + '_': + this.mode = Template.modes.EVAL; + break; + case '<' + d + '=': + this.mode = Template.modes.ESCAPED; + break; + case '<' + d + '-': + this.mode = Template.modes.RAW; + break; + case '<' + d + '#': + this.mode = Template.modes.COMMENT; + break; + case '<' + d + d: + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace('<' + d + d, '<' + d) + '")' + '\n'; + break; + case d + d + '>': + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace(d + d + '>', d + '>') + '")' + '\n'; + break; + case d + '>': + case '-' + d + '>': + case '_' + d + '>': + if (this.mode == Template.modes.LITERAL) { + _addOutput(); + } + + this.mode = null; + this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0; + break; + default: + // In script mode, depends on type of tag + if (this.mode) { + // If '//' is found without a line break, add a line break. + switch (this.mode) { + case Template.modes.EVAL: + case Template.modes.ESCAPED: + case Template.modes.RAW: + if (line.lastIndexOf('//') > line.lastIndexOf('\n')) { + line += '\n'; + } + } + switch (this.mode) { + // Just executing code + case Template.modes.EVAL: + this.source += ' ; ' + line + '\n'; + break; + // Exec, esc, and output + case Template.modes.ESCAPED: + this.source += ' ; __append(escape(' + stripSemi(line) + '))' + '\n'; + break; + // Exec and output + case Template.modes.RAW: + this.source += ' ; __append(' + stripSemi(line) + ')' + '\n'; + break; + case Template.modes.COMMENT: + // Do nothing + break; + // Literal <%% mode, append as raw output + case Template.modes.LITERAL: + _addOutput(); + break; + } + } + // In string mode, just add the output + else { + _addOutput(); + } + } + + if (self.opts.compileDebug && newLineCount) { + this.currentLine += newLineCount; + this.source += ' ; __line = ' + this.currentLine + '\n'; + } + } +}; + +/** + * Escape characters reserved in XML. + * + * This is simply an export of {@link module:utils.escapeXML}. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @param {String} markup Input string + * @return {String} Escaped string + * @public + * @func + * */ +exports.escapeXML = utils.escapeXML; + +/** + * Express.js support. + * + * This is an alias for {@link module:ejs.renderFile}, in order to support + * Express.js out-of-the-box. + * + * @func + */ + +exports.__express = exports.renderFile; + +// Add require support +/* istanbul ignore else */ +if (require.extensions) { + require.extensions['.ejs'] = function (module, flnm) { + var filename = flnm || /* istanbul ignore next */ module.filename; + var options = { + filename: filename, + client: true + }; + var template = fs.readFileSync(filename).toString(); + var fn = exports.compile(template, options); + module._compile('module.exports = ' + fn.toString() + ';', filename); + }; +} + +/** + * Version of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.VERSION = _VERSION_STRING; + +/** + * Name for detection of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.name = _NAME; + +/* istanbul ignore if */ +if (typeof window != 'undefined') { + window.ejs = exports; +} + +},{"../package.json":6,"./utils":2,"fs":3,"path":4}],2:[function(require,module,exports){ +/* + * EJS Embedded JavaScript templates + * Copyright 2112 Matthew Eernisse (mde@fleegix.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ + +/** + * Private utility functions + * @module utils + * @private + */ + +'use strict'; + +var regExpChars = /[|\\{}()[\]^$+*?.]/g; + +/** + * Escape characters reserved in regular expressions. + * + * If `string` is `undefined` or `null`, the empty string is returned. + * + * @param {String} string Input string + * @return {String} Escaped string + * @static + * @private + */ +exports.escapeRegExpChars = function (string) { + // istanbul ignore if + if (!string) { + return ''; + } + return String(string).replace(regExpChars, '\\$&'); +}; + +var _ENCODE_HTML_RULES = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' +}; +var _MATCH_HTML = /[&<>\'"]/g; + +function encode_char(c) { + return _ENCODE_HTML_RULES[c] || c; +} + +/** + * Stringified version of constants used by {@link module:utils.escapeXML}. + * + * It is used in the process of generating {@link ClientFunction}s. + * + * @readonly + * @type {String} + */ + +var escapeFuncStr = + 'var _ENCODE_HTML_RULES = {\n' ++ ' "&": "&"\n' ++ ' , "<": "<"\n' ++ ' , ">": ">"\n' ++ ' , \'"\': """\n' ++ ' , "\'": "'"\n' ++ ' }\n' ++ ' , _MATCH_HTML = /[&<>\'"]/g;\n' ++ 'function encode_char(c) {\n' ++ ' return _ENCODE_HTML_RULES[c] || c;\n' ++ '};\n'; + +/** + * Escape characters reserved in XML. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @implements {EscapeCallback} + * @param {String} markup Input string + * @return {String} Escaped string + * @static + * @private + */ + +exports.escapeXML = function (markup) { + return markup == undefined + ? '' + : String(markup) + .replace(_MATCH_HTML, encode_char); +}; +exports.escapeXML.toString = function () { + return Function.prototype.toString.call(this) + ';\n' + escapeFuncStr; +}; + +/** + * Naive copy of properties from one object to another. + * Does not recurse into non-scalar properties + * Does not check to see if the property has a value before copying + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopy = function (to, from) { + from = from || {}; + for (var p in from) { + to[p] = from[p]; + } + return to; +}; + +/** + * Naive copy of a list of key names, from one object to another. + * Only copies property if it is actually defined + * Does not recurse into non-scalar properties + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @param {Array} list List of properties to copy + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopyFromList = function (to, from, list) { + list.forEach(function (p) { + if (typeof from[p] != 'undefined') { + to[p] = from[p]; + } + }); + return to; +}; + +/** + * Simple in-process cache implementation. Does not implement limits of any + * sort. + * + * @implements Cache + * @static + * @private + */ +exports.cache = { + _data: {}, + set: function (key, val) { + this._data[key] = val; + }, + get: function (key) { + return this._data[key]; + }, + reset: function () { + this._data = {}; + } +}; + +},{}],3:[function(require,module,exports){ + +},{}],4:[function(require,module,exports){ +(function (process){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +// resolves . and .. elements in a path array with directory names there +// must be no slashes, empty elements, or device names (c:\) in the array +// (so also no leading and trailing slashes - it does not distinguish +// relative and absolute paths) +function normalizeArray(parts, allowAboveRoot) { + // if the path tries to go above the root, `up` ends up > 0 + var up = 0; + for (var i = parts.length - 1; i >= 0; i--) { + var last = parts[i]; + if (last === '.') { + parts.splice(i, 1); + } else if (last === '..') { + parts.splice(i, 1); + up++; + } else if (up) { + parts.splice(i, 1); + up--; + } + } + + // if the path is allowed to go above the root, restore leading ..s + if (allowAboveRoot) { + for (; up--; up) { + parts.unshift('..'); + } + } + + return parts; +} + +// Split a filename into [root, dir, basename, ext], unix version +// 'root' is just a slash, or nothing. +var splitPathRe = + /^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/; +var splitPath = function(filename) { + return splitPathRe.exec(filename).slice(1); +}; + +// path.resolve([from ...], to) +// posix version +exports.resolve = function() { + var resolvedPath = '', + resolvedAbsolute = false; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path = (i >= 0) ? arguments[i] : process.cwd(); + + // Skip empty and invalid entries + if (typeof path !== 'string') { + throw new TypeError('Arguments to path.resolve must be strings'); + } else if (!path) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charAt(0) === '/'; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) { + return !!p; + }), !resolvedAbsolute).join('/'); + + return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.'; +}; + +// path.normalize(path) +// posix version +exports.normalize = function(path) { + var isAbsolute = exports.isAbsolute(path), + trailingSlash = substr(path, -1) === '/'; + + // Normalize the path + path = normalizeArray(filter(path.split('/'), function(p) { + return !!p; + }), !isAbsolute).join('/'); + + if (!path && !isAbsolute) { + path = '.'; + } + if (path && trailingSlash) { + path += '/'; + } + + return (isAbsolute ? '/' : '') + path; +}; + +// posix version +exports.isAbsolute = function(path) { + return path.charAt(0) === '/'; +}; + +// posix version +exports.join = function() { + var paths = Array.prototype.slice.call(arguments, 0); + return exports.normalize(filter(paths, function(p, index) { + if (typeof p !== 'string') { + throw new TypeError('Arguments to path.join must be strings'); + } + return p; + }).join('/')); +}; + + +// path.relative(from, to) +// posix version +exports.relative = function(from, to) { + from = exports.resolve(from).substr(1); + to = exports.resolve(to).substr(1); + + function trim(arr) { + var start = 0; + for (; start < arr.length; start++) { + if (arr[start] !== '') break; + } + + var end = arr.length - 1; + for (; end >= 0; end--) { + if (arr[end] !== '') break; + } + + if (start > end) return []; + return arr.slice(start, end - start + 1); + } + + var fromParts = trim(from.split('/')); + var toParts = trim(to.split('/')); + + var length = Math.min(fromParts.length, toParts.length); + var samePartsLength = length; + for (var i = 0; i < length; i++) { + if (fromParts[i] !== toParts[i]) { + samePartsLength = i; + break; + } + } + + var outputParts = []; + for (var i = samePartsLength; i < fromParts.length; i++) { + outputParts.push('..'); + } + + outputParts = outputParts.concat(toParts.slice(samePartsLength)); + + return outputParts.join('/'); +}; + +exports.sep = '/'; +exports.delimiter = ':'; + +exports.dirname = function(path) { + var result = splitPath(path), + root = result[0], + dir = result[1]; + + if (!root && !dir) { + // No dirname whatsoever + return '.'; + } + + if (dir) { + // It has a dirname, strip trailing slash + dir = dir.substr(0, dir.length - 1); + } + + return root + dir; +}; + + +exports.basename = function(path, ext) { + var f = splitPath(path)[2]; + // TODO: make this comparison case-insensitive on windows? + if (ext && f.substr(-1 * ext.length) === ext) { + f = f.substr(0, f.length - ext.length); + } + return f; +}; + + +exports.extname = function(path) { + return splitPath(path)[3]; +}; + +function filter (xs, f) { + if (xs.filter) return xs.filter(f); + var res = []; + for (var i = 0; i < xs.length; i++) { + if (f(xs[i], i, xs)) res.push(xs[i]); + } + return res; +} + +// String.prototype.substr - negative index don't work in IE8 +var substr = 'ab'.substr(-1) === 'b' + ? function (str, start, len) { return str.substr(start, len) } + : function (str, start, len) { + if (start < 0) start = str.length + start; + return str.substr(start, len); + } +; + +}).call(this,require('_process')) +},{"_process":5}],5:[function(require,module,exports){ +// shim for using process in browser +var process = module.exports = {}; + +// cached from whatever global is present so that test runners that stub it +// don't break things. But we need to wrap it in a try catch in case it is +// wrapped in strict mode code which doesn't define any globals. It's inside a +// function because try/catches deoptimize in certain engines. + +var cachedSetTimeout; +var cachedClearTimeout; + +function defaultSetTimout() { + throw new Error('setTimeout has not been defined'); +} +function defaultClearTimeout () { + throw new Error('clearTimeout has not been defined'); +} +(function () { + try { + if (typeof setTimeout === 'function') { + cachedSetTimeout = setTimeout; + } else { + cachedSetTimeout = defaultSetTimout; + } + } catch (e) { + cachedSetTimeout = defaultSetTimout; + } + try { + if (typeof clearTimeout === 'function') { + cachedClearTimeout = clearTimeout; + } else { + cachedClearTimeout = defaultClearTimeout; + } + } catch (e) { + cachedClearTimeout = defaultClearTimeout; + } +} ()) +function runTimeout(fun) { + if (cachedSetTimeout === setTimeout) { + //normal enviroments in sane situations + return setTimeout(fun, 0); + } + // if setTimeout wasn't available but was latter defined + if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) { + cachedSetTimeout = setTimeout; + return setTimeout(fun, 0); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedSetTimeout(fun, 0); + } catch(e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedSetTimeout.call(null, fun, 0); + } catch(e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error + return cachedSetTimeout.call(this, fun, 0); + } + } + + +} +function runClearTimeout(marker) { + if (cachedClearTimeout === clearTimeout) { + //normal enviroments in sane situations + return clearTimeout(marker); + } + // if clearTimeout wasn't available but was latter defined + if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) { + cachedClearTimeout = clearTimeout; + return clearTimeout(marker); + } + try { + // when when somebody has screwed with setTimeout but no I.E. maddness + return cachedClearTimeout(marker); + } catch (e){ + try { + // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally + return cachedClearTimeout.call(null, marker); + } catch (e){ + // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error. + // Some versions of I.E. have different rules for clearTimeout vs setTimeout + return cachedClearTimeout.call(this, marker); + } + } + + + +} +var queue = []; +var draining = false; +var currentQueue; +var queueIndex = -1; + +function cleanUpNextTick() { + if (!draining || !currentQueue) { + return; + } + draining = false; + if (currentQueue.length) { + queue = currentQueue.concat(queue); + } else { + queueIndex = -1; + } + if (queue.length) { + drainQueue(); + } +} + +function drainQueue() { + if (draining) { + return; + } + var timeout = runTimeout(cleanUpNextTick); + draining = true; + + var len = queue.length; + while(len) { + currentQueue = queue; + queue = []; + while (++queueIndex < len) { + if (currentQueue) { + currentQueue[queueIndex].run(); + } + } + queueIndex = -1; + len = queue.length; + } + currentQueue = null; + draining = false; + runClearTimeout(timeout); +} + +process.nextTick = function (fun) { + var args = new Array(arguments.length - 1); + if (arguments.length > 1) { + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + } + queue.push(new Item(fun, args)); + if (queue.length === 1 && !draining) { + runTimeout(drainQueue); + } +}; + +// v8 likes predictible objects +function Item(fun, array) { + this.fun = fun; + this.array = array; +} +Item.prototype.run = function () { + this.fun.apply(null, this.array); +}; +process.title = 'browser'; +process.browser = true; +process.env = {}; +process.argv = []; +process.version = ''; // empty string to avoid regexp issues +process.versions = {}; + +function noop() {} + +process.on = noop; +process.addListener = noop; +process.once = noop; +process.off = noop; +process.removeListener = noop; +process.removeAllListeners = noop; +process.emit = noop; + +process.binding = function (name) { + throw new Error('process.binding is not supported'); +}; + +process.cwd = function () { return '/' }; +process.chdir = function (dir) { + throw new Error('process.chdir is not supported'); +}; +process.umask = function() { return 0; }; + +},{}],6:[function(require,module,exports){ +module.exports={ + "name": "ejs", + "description": "Embedded JavaScript templates", + "keywords": [ + "template", + "engine", + "ejs" + ], + "version": "2.5.4", + "author": "Matthew Eernisse (http://fleegix.org)", + "contributors": [ + "Timothy Gu (https://timothygu.github.io)" + ], + "license": "Apache-2.0", + "main": "./lib/ejs.js", + "repository": { + "type": "git", + "url": "git://github.com/mde/ejs.git" + }, + "bugs": "https://github.com/mde/ejs/issues", + "homepage": "https://github.com/mde/ejs", + "dependencies": {}, + "devDependencies": { + "browserify": "^13.0.1", + "eslint": "^3.0.0", + "git-directory-deploy": "^1.5.1", + "istanbul": "~0.4.3", + "jake": "^8.0.0", + "jsdoc": "^3.4.0", + "lru-cache": "^4.0.1", + "mocha": "^3.0.2", + "uglify-js": "^2.6.2" + }, + "engines": { + "node": ">=0.10.0" + }, + "scripts": { + "test": "mocha", + "lint": "eslint \"**/*.js\" Jakefile", + "coverage": "istanbul cover node_modules/mocha/bin/_mocha", + "doc": "jake doc", + "devdoc": "jake doc[dev]" + } +} + +},{}]},{},[1])(1) +}); \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/ejs/ejs.min.js b/docs/resources-reference/v1.7/node_modules/ejs/ejs.min.js new file mode 100644 index 0000000000000..1072b01819dff --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/ejs.min.js @@ -0,0 +1 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.ejs=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o1;if(options.cache){if(!filename){throw new Error("cache option requires a filename")}func=exports.cache.get(filename);if(func){return func}if(!hasTemplate){template=fs.readFileSync(filename).toString().replace(_BOM,"")}}else if(!hasTemplate){if(!filename){throw new Error("Internal EJS error: no file name or template "+"provided")}template=fs.readFileSync(filename).toString().replace(_BOM,"")}func=exports.compile(template,options);if(options.cache){exports.cache.set(filename,func)}return func}function includeFile(path,options){var opts=utils.shallowCopy({},options);opts.filename=getIncludePath(path,opts);return handleCache(opts)}function includeSource(path,options){var opts=utils.shallowCopy({},options);var includePath;var template;includePath=getIncludePath(path,opts);template=fs.readFileSync(includePath).toString().replace(_BOM,"");opts.filename=includePath;var templ=new Template(template,opts);templ.generateSource();return{source:templ.source,filename:includePath,template:template}}function rethrow(err,str,flnm,lineno){var lines=str.split("\n");var start=Math.max(lineno-3,0);var end=Math.min(lines.length,lineno+3);var filename=utils.escapeXML(flnm);var context=lines.slice(start,end).map(function(line,i){var curr=i+start+1;return(curr==lineno?" >> ":" ")+curr+"| "+line}).join("\n");err.path=filename;err.message=(filename||"ejs")+":"+lineno+"\n"+context+"\n\n"+err.message;throw err}function stripSemi(str){return str.replace(/;(\s*$)/,"$1")}exports.compile=function compile(template,opts){var templ;if(opts&&opts.scope){if(!scopeOptionWarned){console.warn("`scope` option is deprecated and will be removed in EJS 3");scopeOptionWarned=true}if(!opts.context){opts.context=opts.scope}delete opts.scope}templ=new Template(template,opts);return templ.compile()};exports.render=function(template,d,o){var data=d||{};var opts=o||{};if(arguments.length==2){utils.shallowCopyFromList(opts,data,_OPTS)}return handleCache(opts,template)(data)};exports.renderFile=function(){var args=Array.prototype.slice.call(arguments);var filename=args.shift();var cb=args.pop();var data=args.shift()||{};var opts=args.pop()||{};var optsKeys=_OPTS.slice();var result;opts=utils.shallowCopy({},opts);optsKeys.push("cache");if(arguments.length==3){if(data.settings&&data.settings["view options"]){utils.shallowCopyFromList(opts,data.settings["view options"],optsKeys)}else{utils.shallowCopyFromList(opts,data,optsKeys)}}opts.filename=filename;try{result=handleCache(opts)(data)}catch(err){return cb(err)}return cb(null,result)};exports.clearCache=function(){exports.cache.reset()};function Template(text,opts){opts=opts||{};var options={};this.templateText=text;this.mode=null;this.truncate=false;this.currentLine=1;this.source="";this.dependencies=[];options.client=opts.client||false;options.escapeFunction=opts.escape||utils.escapeXML;options.compileDebug=opts.compileDebug!==false;options.debug=!!opts.debug;options.filename=opts.filename;options.delimiter=opts.delimiter||exports.delimiter||_DEFAULT_DELIMITER;options.strict=opts.strict||false;options.context=opts.context;options.cache=opts.cache||false;options.rmWhitespace=opts.rmWhitespace;options.root=opts.root;options.localsName=opts.localsName||exports.localsName||_DEFAULT_LOCALS_NAME;if(options.strict){options._with=false}else{options._with=typeof opts._with!="undefined"?opts._with:true}this.opts=options;this.regex=this.createRegex()}Template.modes={EVAL:"eval",ESCAPED:"escaped",RAW:"raw",COMMENT:"comment",LITERAL:"literal"};Template.prototype={createRegex:function(){var str=_REGEX_STRING;var delim=utils.escapeRegExpChars(this.opts.delimiter);str=str.replace(/%/g,delim);return new RegExp(str)},compile:function(){var src;var fn;var opts=this.opts;var prepended="";var appended="";var escape=opts.escapeFunction;if(!this.source){this.generateSource();prepended+=" var __output = [], __append = __output.push.bind(__output);"+"\n";if(opts._with!==false){prepended+=" with ("+opts.localsName+" || {}) {"+"\n";appended+=" }"+"\n"}appended+=' return __output.join("");'+"\n";this.source=prepended+this.source+appended}if(opts.compileDebug){src="var __line = 1"+"\n"+" , __lines = "+JSON.stringify(this.templateText)+"\n"+" , __filename = "+(opts.filename?JSON.stringify(opts.filename):"undefined")+";"+"\n"+"try {"+"\n"+this.source+"} catch (e) {"+"\n"+" rethrow(e, __lines, __filename, __line);"+"\n"+"}"+"\n"}else{src=this.source}if(opts.debug){console.log(src)}if(opts.client){src="escape = escape || "+escape.toString()+";"+"\n"+src;if(opts.compileDebug){src="rethrow = rethrow || "+rethrow.toString()+";"+"\n"+src}}if(opts.strict){src='"use strict";\n'+src}try{fn=new Function(opts.localsName+", escape, include, rethrow",src)}catch(e){if(e instanceof SyntaxError){if(opts.filename){e.message+=" in "+opts.filename}e.message+=" while compiling ejs\n\n";e.message+="If the above error is not helpful, you may want to try EJS-Lint:\n";e.message+="https://github.com/RyanZim/EJS-Lint"}throw e}if(opts.client){fn.dependencies=this.dependencies;return fn}var returnedFn=function(data){var include=function(path,includeData){var d=utils.shallowCopy({},data);if(includeData){d=utils.shallowCopy(d,includeData)}return includeFile(path,opts)(d)};return fn.apply(opts.context,[data||{},escape,include,rethrow])};returnedFn.dependencies=this.dependencies;return returnedFn},generateSource:function(){var opts=this.opts;if(opts.rmWhitespace){this.templateText=this.templateText.replace(/\r/g,"").replace(/^\s+|\s+$/gm,"")}this.templateText=this.templateText.replace(/[ \t]*<%_/gm,"<%_").replace(/_%>[ \t]*/gm,"_%>");var self=this;var matches=this.parseTemplateText();var d=this.opts.delimiter;if(matches&&matches.length){matches.forEach(function(line,index){var opening;var closing;var include;var includeOpts;var includeObj;var includeSrc;if(line.indexOf("<"+d)===0&&line.indexOf("<"+d+d)!==0){closing=matches[index+2];if(!(closing==d+">"||closing=="-"+d+">"||closing=="_"+d+">")){throw new Error('Could not find matching close tag for "'+line+'".')}}if(include=line.match(/^\s*include\s+(\S+)/)){opening=matches[index-1];if(opening&&(opening=="<"+d||opening=="<"+d+"-"||opening=="<"+d+"_")){includeOpts=utils.shallowCopy({},self.opts);includeObj=includeSource(include[1],includeOpts);if(self.opts.compileDebug){includeSrc=" ; (function(){"+"\n"+" var __line = 1"+"\n"+" , __lines = "+JSON.stringify(includeObj.template)+"\n"+" , __filename = "+JSON.stringify(includeObj.filename)+";"+"\n"+" try {"+"\n"+includeObj.source+" } catch (e) {"+"\n"+" rethrow(e, __lines, __filename, __line);"+"\n"+" }"+"\n"+" ; }).call(this)"+"\n"}else{includeSrc=" ; (function(){"+"\n"+includeObj.source+" ; }).call(this)"+"\n"}self.source+=includeSrc;self.dependencies.push(exports.resolveInclude(include[1],includeOpts.filename));return}}self.scanLine(line)})}},parseTemplateText:function(){var str=this.templateText;var pat=this.regex;var result=pat.exec(str);var arr=[];var firstPos;while(result){firstPos=result.index;if(firstPos!==0){arr.push(str.substring(0,firstPos));str=str.slice(firstPos)}arr.push(result[0]);str=str.slice(result[0].length);result=pat.exec(str)}if(str){arr.push(str)}return arr},scanLine:function(line){var self=this;var d=this.opts.delimiter;var newLineCount=0;function _addOutput(){if(self.truncate){line=line.replace(/^(?:\r\n|\r|\n)/,"");self.truncate=false}else if(self.opts.rmWhitespace){line=line.replace(/^\n/,"")}if(!line){return}line=line.replace(/\\/g,"\\\\");line=line.replace(/\n/g,"\\n");line=line.replace(/\r/g,"\\r");line=line.replace(/"/g,'\\"');self.source+=' ; __append("'+line+'")'+"\n"}newLineCount=line.split("\n").length-1;switch(line){case"<"+d:case"<"+d+"_":this.mode=Template.modes.EVAL;break;case"<"+d+"=":this.mode=Template.modes.ESCAPED;break;case"<"+d+"-":this.mode=Template.modes.RAW;break;case"<"+d+"#":this.mode=Template.modes.COMMENT;break;case"<"+d+d:this.mode=Template.modes.LITERAL;this.source+=' ; __append("'+line.replace("<"+d+d,"<"+d)+'")'+"\n";break;case d+d+">":this.mode=Template.modes.LITERAL;this.source+=' ; __append("'+line.replace(d+d+">",d+">")+'")'+"\n";break;case d+">":case"-"+d+">":case"_"+d+">":if(this.mode==Template.modes.LITERAL){_addOutput()}this.mode=null;this.truncate=line.indexOf("-")===0||line.indexOf("_")===0;break;default:if(this.mode){switch(this.mode){case Template.modes.EVAL:case Template.modes.ESCAPED:case Template.modes.RAW:if(line.lastIndexOf("//")>line.lastIndexOf("\n")){line+="\n"}}switch(this.mode){case Template.modes.EVAL:this.source+=" ; "+line+"\n";break;case Template.modes.ESCAPED:this.source+=" ; __append(escape("+stripSemi(line)+"))"+"\n";break;case Template.modes.RAW:this.source+=" ; __append("+stripSemi(line)+")"+"\n";break;case Template.modes.COMMENT:break;case Template.modes.LITERAL:_addOutput();break}}else{_addOutput()}}if(self.opts.compileDebug&&newLineCount){this.currentLine+=newLineCount;this.source+=" ; __line = "+this.currentLine+"\n"}}};exports.escapeXML=utils.escapeXML;exports.__express=exports.renderFile;if(require.extensions){require.extensions[".ejs"]=function(module,flnm){var filename=flnm||module.filename;var options={filename:filename,client:true};var template=fs.readFileSync(filename).toString();var fn=exports.compile(template,options);module._compile("module.exports = "+fn.toString()+";",filename)}}exports.VERSION=_VERSION_STRING;exports.name=_NAME;if(typeof window!="undefined"){window.ejs=exports}},{"../package.json":6,"./utils":2,fs:3,path:4}],2:[function(require,module,exports){"use strict";var regExpChars=/[|\\{}()[\]^$+*?.]/g;exports.escapeRegExpChars=function(string){if(!string){return""}return String(string).replace(regExpChars,"\\$&")};var _ENCODE_HTML_RULES={"&":"&","<":"<",">":">",'"':""","'":"'"};var _MATCH_HTML=/[&<>\'"]/g;function encode_char(c){return _ENCODE_HTML_RULES[c]||c}var escapeFuncStr="var _ENCODE_HTML_RULES = {\n"+' "&": "&"\n'+' , "<": "<"\n'+' , ">": ">"\n'+' , \'"\': """\n'+' , "\'": "'"\n'+" }\n"+" , _MATCH_HTML = /[&<>'\"]/g;\n"+"function encode_char(c) {\n"+" return _ENCODE_HTML_RULES[c] || c;\n"+"};\n";exports.escapeXML=function(markup){return markup==undefined?"":String(markup).replace(_MATCH_HTML,encode_char)};exports.escapeXML.toString=function(){return Function.prototype.toString.call(this)+";\n"+escapeFuncStr};exports.shallowCopy=function(to,from){from=from||{};for(var p in from){to[p]=from[p]}return to};exports.shallowCopyFromList=function(to,from,list){list.forEach(function(p){if(typeof from[p]!="undefined"){to[p]=from[p]}});return to};exports.cache={_data:{},set:function(key,val){this._data[key]=val},get:function(key){return this._data[key]},reset:function(){this._data={}}}},{}],3:[function(require,module,exports){},{}],4:[function(require,module,exports){(function(process){function normalizeArray(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up--;up){parts.unshift("..")}}return parts}var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;var splitPath=function(filename){return splitPathRe.exec(filename).slice(1)};exports.resolve=function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:process.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){continue}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=normalizeArray(filter(resolvedPath.split("/"),function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."};exports.normalize=function(path){var isAbsolute=exports.isAbsolute(path),trailingSlash=substr(path,-1)==="/";path=normalizeArray(filter(path.split("/"),function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path};exports.isAbsolute=function(path){return path.charAt(0)==="/"};exports.join=function(){var paths=Array.prototype.slice.call(arguments,0);return exports.normalize(filter(paths,function(p,index){if(typeof p!=="string"){throw new TypeError("Arguments to path.join must be strings")}return p}).join("/"))};exports.relative=function(from,to){from=exports.resolve(from).substr(1);to=exports.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i1){for(var i=1;i (http://fleegix.org)",contributors:["Timothy Gu (https://timothygu.github.io)"],license:"Apache-2.0",main:"./lib/ejs.js",repository:{type:"git",url:"git://github.com/mde/ejs.git"},bugs:"https://github.com/mde/ejs/issues",homepage:"https://github.com/mde/ejs",dependencies:{},devDependencies:{browserify:"^13.0.1",eslint:"^3.0.0","git-directory-deploy":"^1.5.1",istanbul:"~0.4.3",jake:"^8.0.0",jsdoc:"^3.4.0","lru-cache":"^4.0.1",mocha:"^3.0.2","uglify-js":"^2.6.2"},engines:{node:">=0.10.0"},scripts:{test:"mocha",lint:'eslint "**/*.js" Jakefile',coverage:"istanbul cover node_modules/mocha/bin/_mocha",doc:"jake doc",devdoc:"jake doc[dev]"}}},{}]},{},[1])(1)}); diff --git a/docs/resources-reference/v1.7/node_modules/ejs/lib/ejs.js b/docs/resources-reference/v1.7/node_modules/ejs/lib/ejs.js new file mode 100644 index 0000000000000..4eacdb707ed48 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/lib/ejs.js @@ -0,0 +1,798 @@ +/* + * EJS Embedded JavaScript templates + * Copyright 2112 Matthew Eernisse (mde@fleegix.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ + +'use strict'; + +/** + * @file Embedded JavaScript templating engine. + * @author Matthew Eernisse + * @author Tiancheng "Timothy" Gu + * @project EJS + * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0} + */ + +/** + * EJS internal functions. + * + * Technically this "module" lies in the same file as {@link module:ejs}, for + * the sake of organization all the private functions re grouped into this + * module. + * + * @module ejs-internal + * @private + */ + +/** + * Embedded JavaScript templating engine. + * + * @module ejs + * @public + */ + +var fs = require('fs'); +var path = require('path'); +var utils = require('./utils'); + +var scopeOptionWarned = false; +var _VERSION_STRING = require('../package.json').version; +var _DEFAULT_DELIMITER = '%'; +var _DEFAULT_LOCALS_NAME = 'locals'; +var _NAME = 'ejs'; +var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)'; +var _OPTS = ['delimiter', 'scope', 'context', 'debug', 'compileDebug', + 'client', '_with', 'rmWhitespace', 'strict', 'filename']; +var _BOM = /^\uFEFF/; + +/** + * EJS template function cache. This can be a LRU object from lru-cache NPM + * module. By default, it is {@link module:utils.cache}, a simple in-process + * cache that grows continuously. + * + * @type {Cache} + */ + +exports.cache = utils.cache; + +/** + * Name of the object containing the locals. + * + * This variable is overridden by {@link Options}`.localsName` if it is not + * `undefined`. + * + * @type {String} + * @public + */ + +exports.localsName = _DEFAULT_LOCALS_NAME; + +/** + * Get the path to the included file from the parent file path and the + * specified path. + * + * @param {String} name specified path + * @param {String} filename parent file path + * @param {Boolean} isDir parent file path whether is directory + * @return {String} + */ +exports.resolveInclude = function(name, filename, isDir) { + var dirname = path.dirname; + var extname = path.extname; + var resolve = path.resolve; + var includePath = resolve(isDir ? filename : dirname(filename), name); + var ext = extname(name); + if (!ext) { + includePath += '.ejs'; + } + return includePath; +}; + +/** + * Get the path to the included file by Options + * + * @param {String} path specified path + * @param {Options} options compilation options + * @return {String} + */ +function getIncludePath(path, options){ + var includePath; + if (path.charAt(0) == '/') { + includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true); + } + else { + if (!options.filename) { + throw new Error('`include` use relative path requires the \'filename\' option.'); + } + includePath = exports.resolveInclude(path, options.filename); + } + return includePath; +} + +/** + * Get the template from a string or a file, either compiled on-the-fly or + * read from cache (if enabled), and cache the template if needed. + * + * If `template` is not set, the file specified in `options.filename` will be + * read. + * + * If `options.cache` is true, this function reads the file from + * `options.filename` so it must be set prior to calling this function. + * + * @memberof module:ejs-internal + * @param {Options} options compilation options + * @param {String} [template] template source + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned. + * @static + */ + +function handleCache(options, template) { + var func; + var filename = options.filename; + var hasTemplate = arguments.length > 1; + + if (options.cache) { + if (!filename) { + throw new Error('cache option requires a filename'); + } + func = exports.cache.get(filename); + if (func) { + return func; + } + if (!hasTemplate) { + template = fs.readFileSync(filename).toString().replace(_BOM, ''); + } + } + else if (!hasTemplate) { + // istanbul ignore if: should not happen at all + if (!filename) { + throw new Error('Internal EJS error: no file name or template ' + + 'provided'); + } + template = fs.readFileSync(filename).toString().replace(_BOM, ''); + } + func = exports.compile(template, options); + if (options.cache) { + exports.cache.set(filename, func); + } + return func; +} + +/** + * Get the template function. + * + * If `options.cache` is `true`, then the template is cached. + * + * @memberof module:ejs-internal + * @param {String} path path for the specified file + * @param {Options} options compilation options + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned + * @static + */ + +function includeFile(path, options) { + var opts = utils.shallowCopy({}, options); + opts.filename = getIncludePath(path, opts); + return handleCache(opts); +} + +/** + * Get the JavaScript source of an included file. + * + * @memberof module:ejs-internal + * @param {String} path path for the specified file + * @param {Options} options compilation options + * @return {Object} + * @static + */ + +function includeSource(path, options) { + var opts = utils.shallowCopy({}, options); + var includePath; + var template; + includePath = getIncludePath(path,opts); + template = fs.readFileSync(includePath).toString().replace(_BOM, ''); + opts.filename = includePath; + var templ = new Template(template, opts); + templ.generateSource(); + return { + source: templ.source, + filename: includePath, + template: template + }; +} + +/** + * Re-throw the given `err` in context to the `str` of ejs, `filename`, and + * `lineno`. + * + * @implements RethrowCallback + * @memberof module:ejs-internal + * @param {Error} err Error object + * @param {String} str EJS source + * @param {String} filename file name of the EJS file + * @param {String} lineno line number of the error + * @static + */ + +function rethrow(err, str, flnm, lineno){ + var lines = str.split('\n'); + var start = Math.max(lineno - 3, 0); + var end = Math.min(lines.length, lineno + 3); + var filename = utils.escapeXML(flnm); + // Error context + var context = lines.slice(start, end).map(function (line, i){ + var curr = i + start + 1; + return (curr == lineno ? ' >> ' : ' ') + + curr + + '| ' + + line; + }).join('\n'); + + // Alter exception message + err.path = filename; + err.message = (filename || 'ejs') + ':' + + lineno + '\n' + + context + '\n\n' + + err.message; + + throw err; +} + +function stripSemi(str) { + return str.replace(/;(\s*$)/, '$1'); +} + +/** + * Compile the given `str` of ejs into a template function. + * + * @param {String} template EJS template + * + * @param {Options} opts compilation options + * + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `opts.client`, either type might be returned. + * @public + */ + +exports.compile = function compile(template, opts) { + var templ; + + // v1 compat + // 'scope' is 'context' + // FIXME: Remove this in a future version + if (opts && opts.scope) { + if (!scopeOptionWarned){ + console.warn('`scope` option is deprecated and will be removed in EJS 3'); + scopeOptionWarned = true; + } + if (!opts.context) { + opts.context = opts.scope; + } + delete opts.scope; + } + templ = new Template(template, opts); + return templ.compile(); +}; + +/** + * Render the given `template` of ejs. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} template EJS template + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @return {String} + * @public + */ + +exports.render = function (template, d, o) { + var data = d || {}; + var opts = o || {}; + + // No options object -- if there are optiony names + // in the data, copy them to options + if (arguments.length == 2) { + utils.shallowCopyFromList(opts, data, _OPTS); + } + + return handleCache(opts, template)(data); +}; + +/** + * Render an EJS file at the given `path` and callback `cb(err, str)`. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} path path to the EJS file + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @param {RenderFileCallback} cb callback + * @public + */ + +exports.renderFile = function () { + var args = Array.prototype.slice.call(arguments); + var filename = args.shift(); + var cb = args.pop(); + var data = args.shift() || {}; + var opts = args.pop() || {}; + var optsKeys =_OPTS.slice(); + var result; + + // Don't pollute passed in opts obj with new vals + opts = utils.shallowCopy({}, opts); + + // We don't allow 'cache' option to be passed in the data obj + // for the normal `render` call, but this is where Expres puts it + // so we make an exception for `renderFile` + optsKeys.push('cache'); + + // No options object -- if there are optiony names + // in the data, copy them to options + if (arguments.length == 3) { + // Express 4 + if (data.settings && data.settings['view options']) { + utils.shallowCopyFromList(opts, data.settings['view options'], optsKeys); + } + // Express 3 and lower + else { + utils.shallowCopyFromList(opts, data, optsKeys); + } + } + opts.filename = filename; + + try { + result = handleCache(opts)(data); + } + catch(err) { + return cb(err); + } + return cb(null, result); +}; + +/** + * Clear intermediate JavaScript cache. Calls {@link Cache#reset}. + * @public + */ + +exports.clearCache = function () { + exports.cache.reset(); +}; + +function Template(text, opts) { + opts = opts || {}; + var options = {}; + this.templateText = text; + this.mode = null; + this.truncate = false; + this.currentLine = 1; + this.source = ''; + this.dependencies = []; + options.client = opts.client || false; + options.escapeFunction = opts.escape || utils.escapeXML; + options.compileDebug = opts.compileDebug !== false; + options.debug = !!opts.debug; + options.filename = opts.filename; + options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER; + options.strict = opts.strict || false; + options.context = opts.context; + options.cache = opts.cache || false; + options.rmWhitespace = opts.rmWhitespace; + options.root = opts.root; + options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME; + + if (options.strict) { + options._with = false; + } + else { + options._with = typeof opts._with != 'undefined' ? opts._with : true; + } + + this.opts = options; + + this.regex = this.createRegex(); +} + +Template.modes = { + EVAL: 'eval', + ESCAPED: 'escaped', + RAW: 'raw', + COMMENT: 'comment', + LITERAL: 'literal' +}; + +Template.prototype = { + createRegex: function () { + var str = _REGEX_STRING; + var delim = utils.escapeRegExpChars(this.opts.delimiter); + str = str.replace(/%/g, delim); + return new RegExp(str); + }, + + compile: function () { + var src; + var fn; + var opts = this.opts; + var prepended = ''; + var appended = ''; + var escape = opts.escapeFunction; + + if (!this.source) { + this.generateSource(); + prepended += ' var __output = [], __append = __output.push.bind(__output);' + '\n'; + if (opts._with !== false) { + prepended += ' with (' + opts.localsName + ' || {}) {' + '\n'; + appended += ' }' + '\n'; + } + appended += ' return __output.join("");' + '\n'; + this.source = prepended + this.source + appended; + } + + if (opts.compileDebug) { + src = 'var __line = 1' + '\n' + + ' , __lines = ' + JSON.stringify(this.templateText) + '\n' + + ' , __filename = ' + (opts.filename ? + JSON.stringify(opts.filename) : 'undefined') + ';' + '\n' + + 'try {' + '\n' + + this.source + + '} catch (e) {' + '\n' + + ' rethrow(e, __lines, __filename, __line);' + '\n' + + '}' + '\n'; + } + else { + src = this.source; + } + + if (opts.debug) { + console.log(src); + } + + if (opts.client) { + src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src; + if (opts.compileDebug) { + src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src; + } + } + + if (opts.strict) { + src = '"use strict";\n' + src; + } + + try { + fn = new Function(opts.localsName + ', escape, include, rethrow', src); + } + catch(e) { + // istanbul ignore else + if (e instanceof SyntaxError) { + if (opts.filename) { + e.message += ' in ' + opts.filename; + } + e.message += ' while compiling ejs\n\n'; + e.message += 'If the above error is not helpful, you may want to try EJS-Lint:\n'; + e.message += 'https://github.com/RyanZim/EJS-Lint'; + } + throw e; + } + + if (opts.client) { + fn.dependencies = this.dependencies; + return fn; + } + + // Return a callable function which will execute the function + // created by the source-code, with the passed data as locals + // Adds a local `include` function which allows full recursive include + var returnedFn = function (data) { + var include = function (path, includeData) { + var d = utils.shallowCopy({}, data); + if (includeData) { + d = utils.shallowCopy(d, includeData); + } + return includeFile(path, opts)(d); + }; + return fn.apply(opts.context, [data || {}, escape, include, rethrow]); + }; + returnedFn.dependencies = this.dependencies; + return returnedFn; + }, + + generateSource: function () { + var opts = this.opts; + + if (opts.rmWhitespace) { + // Have to use two separate replace here as `^` and `$` operators don't + // work well with `\r`. + this.templateText = + this.templateText.replace(/\r/g, '').replace(/^\s+|\s+$/gm, ''); + } + + // Slurp spaces and tabs before <%_ and after _%> + this.templateText = + this.templateText.replace(/[ \t]*<%_/gm, '<%_').replace(/_%>[ \t]*/gm, '_%>'); + + var self = this; + var matches = this.parseTemplateText(); + var d = this.opts.delimiter; + + if (matches && matches.length) { + matches.forEach(function (line, index) { + var opening; + var closing; + var include; + var includeOpts; + var includeObj; + var includeSrc; + // If this is an opening tag, check for closing tags + // FIXME: May end up with some false positives here + // Better to store modes as k/v with '<' + delimiter as key + // Then this can simply check against the map + if ( line.indexOf('<' + d) === 0 // If it is a tag + && line.indexOf('<' + d + d) !== 0) { // and is not escaped + closing = matches[index + 2]; + if (!(closing == d + '>' || closing == '-' + d + '>' || closing == '_' + d + '>')) { + throw new Error('Could not find matching close tag for "' + line + '".'); + } + } + // HACK: backward-compat `include` preprocessor directives + if ((include = line.match(/^\s*include\s+(\S+)/))) { + opening = matches[index - 1]; + // Must be in EVAL or RAW mode + if (opening && (opening == '<' + d || opening == '<' + d + '-' || opening == '<' + d + '_')) { + includeOpts = utils.shallowCopy({}, self.opts); + includeObj = includeSource(include[1], includeOpts); + if (self.opts.compileDebug) { + includeSrc = + ' ; (function(){' + '\n' + + ' var __line = 1' + '\n' + + ' , __lines = ' + JSON.stringify(includeObj.template) + '\n' + + ' , __filename = ' + JSON.stringify(includeObj.filename) + ';' + '\n' + + ' try {' + '\n' + + includeObj.source + + ' } catch (e) {' + '\n' + + ' rethrow(e, __lines, __filename, __line);' + '\n' + + ' }' + '\n' + + ' ; }).call(this)' + '\n'; + }else{ + includeSrc = ' ; (function(){' + '\n' + includeObj.source + + ' ; }).call(this)' + '\n'; + } + self.source += includeSrc; + self.dependencies.push(exports.resolveInclude(include[1], + includeOpts.filename)); + return; + } + } + self.scanLine(line); + }); + } + + }, + + parseTemplateText: function () { + var str = this.templateText; + var pat = this.regex; + var result = pat.exec(str); + var arr = []; + var firstPos; + + while (result) { + firstPos = result.index; + + if (firstPos !== 0) { + arr.push(str.substring(0, firstPos)); + str = str.slice(firstPos); + } + + arr.push(result[0]); + str = str.slice(result[0].length); + result = pat.exec(str); + } + + if (str) { + arr.push(str); + } + + return arr; + }, + + scanLine: function (line) { + var self = this; + var d = this.opts.delimiter; + var newLineCount = 0; + + function _addOutput() { + if (self.truncate) { + // Only replace single leading linebreak in the line after + // -%> tag -- this is the single, trailing linebreak + // after the tag that the truncation mode replaces + // Handle Win / Unix / old Mac linebreaks -- do the \r\n + // combo first in the regex-or + line = line.replace(/^(?:\r\n|\r|\n)/, ''); + self.truncate = false; + } + else if (self.opts.rmWhitespace) { + // rmWhitespace has already removed trailing spaces, just need + // to remove linebreaks + line = line.replace(/^\n/, ''); + } + if (!line) { + return; + } + + // Preserve literal slashes + line = line.replace(/\\/g, '\\\\'); + + // Convert linebreaks + line = line.replace(/\n/g, '\\n'); + line = line.replace(/\r/g, '\\r'); + + // Escape double-quotes + // - this will be the delimiter during execution + line = line.replace(/"/g, '\\"'); + self.source += ' ; __append("' + line + '")' + '\n'; + } + + newLineCount = (line.split('\n').length - 1); + + switch (line) { + case '<' + d: + case '<' + d + '_': + this.mode = Template.modes.EVAL; + break; + case '<' + d + '=': + this.mode = Template.modes.ESCAPED; + break; + case '<' + d + '-': + this.mode = Template.modes.RAW; + break; + case '<' + d + '#': + this.mode = Template.modes.COMMENT; + break; + case '<' + d + d: + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace('<' + d + d, '<' + d) + '")' + '\n'; + break; + case d + d + '>': + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace(d + d + '>', d + '>') + '")' + '\n'; + break; + case d + '>': + case '-' + d + '>': + case '_' + d + '>': + if (this.mode == Template.modes.LITERAL) { + _addOutput(); + } + + this.mode = null; + this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0; + break; + default: + // In script mode, depends on type of tag + if (this.mode) { + // If '//' is found without a line break, add a line break. + switch (this.mode) { + case Template.modes.EVAL: + case Template.modes.ESCAPED: + case Template.modes.RAW: + if (line.lastIndexOf('//') > line.lastIndexOf('\n')) { + line += '\n'; + } + } + switch (this.mode) { + // Just executing code + case Template.modes.EVAL: + this.source += ' ; ' + line + '\n'; + break; + // Exec, esc, and output + case Template.modes.ESCAPED: + this.source += ' ; __append(escape(' + stripSemi(line) + '))' + '\n'; + break; + // Exec and output + case Template.modes.RAW: + this.source += ' ; __append(' + stripSemi(line) + ')' + '\n'; + break; + case Template.modes.COMMENT: + // Do nothing + break; + // Literal <%% mode, append as raw output + case Template.modes.LITERAL: + _addOutput(); + break; + } + } + // In string mode, just add the output + else { + _addOutput(); + } + } + + if (self.opts.compileDebug && newLineCount) { + this.currentLine += newLineCount; + this.source += ' ; __line = ' + this.currentLine + '\n'; + } + } +}; + +/** + * Escape characters reserved in XML. + * + * This is simply an export of {@link module:utils.escapeXML}. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @param {String} markup Input string + * @return {String} Escaped string + * @public + * @func + * */ +exports.escapeXML = utils.escapeXML; + +/** + * Express.js support. + * + * This is an alias for {@link module:ejs.renderFile}, in order to support + * Express.js out-of-the-box. + * + * @func + */ + +exports.__express = exports.renderFile; + +// Add require support +/* istanbul ignore else */ +if (require.extensions) { + require.extensions['.ejs'] = function (module, flnm) { + var filename = flnm || /* istanbul ignore next */ module.filename; + var options = { + filename: filename, + client: true + }; + var template = fs.readFileSync(filename).toString(); + var fn = exports.compile(template, options); + module._compile('module.exports = ' + fn.toString() + ';', filename); + }; +} + +/** + * Version of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.VERSION = _VERSION_STRING; + +/** + * Name for detection of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.name = _NAME; + +/* istanbul ignore if */ +if (typeof window != 'undefined') { + window.ejs = exports; +} diff --git a/docs/resources-reference/v1.7/node_modules/ejs/lib/utils.js b/docs/resources-reference/v1.7/node_modules/ejs/lib/utils.js new file mode 100644 index 0000000000000..563913adce685 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/lib/utils.js @@ -0,0 +1,163 @@ +/* + * EJS Embedded JavaScript templates + * Copyright 2112 Matthew Eernisse (mde@fleegix.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ + +/** + * Private utility functions + * @module utils + * @private + */ + +'use strict'; + +var regExpChars = /[|\\{}()[\]^$+*?.]/g; + +/** + * Escape characters reserved in regular expressions. + * + * If `string` is `undefined` or `null`, the empty string is returned. + * + * @param {String} string Input string + * @return {String} Escaped string + * @static + * @private + */ +exports.escapeRegExpChars = function (string) { + // istanbul ignore if + if (!string) { + return ''; + } + return String(string).replace(regExpChars, '\\$&'); +}; + +var _ENCODE_HTML_RULES = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' +}; +var _MATCH_HTML = /[&<>\'"]/g; + +function encode_char(c) { + return _ENCODE_HTML_RULES[c] || c; +} + +/** + * Stringified version of constants used by {@link module:utils.escapeXML}. + * + * It is used in the process of generating {@link ClientFunction}s. + * + * @readonly + * @type {String} + */ + +var escapeFuncStr = + 'var _ENCODE_HTML_RULES = {\n' ++ ' "&": "&"\n' ++ ' , "<": "<"\n' ++ ' , ">": ">"\n' ++ ' , \'"\': """\n' ++ ' , "\'": "'"\n' ++ ' }\n' ++ ' , _MATCH_HTML = /[&<>\'"]/g;\n' ++ 'function encode_char(c) {\n' ++ ' return _ENCODE_HTML_RULES[c] || c;\n' ++ '};\n'; + +/** + * Escape characters reserved in XML. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @implements {EscapeCallback} + * @param {String} markup Input string + * @return {String} Escaped string + * @static + * @private + */ + +exports.escapeXML = function (markup) { + return markup == undefined + ? '' + : String(markup) + .replace(_MATCH_HTML, encode_char); +}; +exports.escapeXML.toString = function () { + return Function.prototype.toString.call(this) + ';\n' + escapeFuncStr; +}; + +/** + * Naive copy of properties from one object to another. + * Does not recurse into non-scalar properties + * Does not check to see if the property has a value before copying + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopy = function (to, from) { + from = from || {}; + for (var p in from) { + to[p] = from[p]; + } + return to; +}; + +/** + * Naive copy of a list of key names, from one object to another. + * Only copies property if it is actually defined + * Does not recurse into non-scalar properties + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @param {Array} list List of properties to copy + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopyFromList = function (to, from, list) { + list.forEach(function (p) { + if (typeof from[p] != 'undefined') { + to[p] = from[p]; + } + }); + return to; +}; + +/** + * Simple in-process cache implementation. Does not implement limits of any + * sort. + * + * @implements Cache + * @static + * @private + */ +exports.cache = { + _data: {}, + set: function (key, val) { + this._data[key] = val; + }, + get: function (key) { + return this._data[key]; + }, + reset: function () { + this._data = {}; + } +}; diff --git a/docs/resources-reference/v1.7/node_modules/ejs/package.json b/docs/resources-reference/v1.7/node_modules/ejs/package.json new file mode 100644 index 0000000000000..9afe80d66b6e1 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/package.json @@ -0,0 +1,113 @@ +{ + "_args": [ + [ + { + "raw": "ejs@^2.5.2", + "scope": null, + "escapedName": "ejs", + "name": "ejs", + "rawSpec": "^2.5.2", + "spec": ">=2.5.2 <3.0.0", + "type": "range" + }, + "/brodocs" + ] + ], + "_from": "ejs@>=2.5.2 <3.0.0", + "_id": "ejs@2.5.5", + "_inCache": true, + "_location": "/ejs", + "_nodeVersion": "6.9.1", + "_npmOperationalInternal": { + "host": "packages-18-east.internal.npmjs.com", + "tmp": "tmp/ejs-2.5.5.tgz_1481011535826_0.4493071837350726" + }, + "_npmUser": { + "name": "mde", + "email": "mde@fleegix.org" + }, + "_npmVersion": "3.10.8", + "_phantomChildren": {}, + "_requested": { + "raw": "ejs@^2.5.2", + "scope": null, + "escapedName": "ejs", + "name": "ejs", + "rawSpec": "^2.5.2", + "spec": ">=2.5.2 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "#DEV:/" + ], + "_resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz", + "_shasum": "6ef4e954ea7dcf54f66aad2fe7aa421932d9ed77", + "_shrinkwrap": null, + "_spec": "ejs@^2.5.2", + "_where": "/brodocs", + "author": { + "name": "Matthew Eernisse", + "email": "mde@fleegix.org", + "url": "http://fleegix.org" + }, + "bugs": { + "url": "https://github.com/mde/ejs/issues" + }, + "contributors": [ + { + "name": "Timothy Gu", + "email": "timothygu99@gmail.com", + "url": "https://timothygu.github.io" + } + ], + "dependencies": {}, + "description": "Embedded JavaScript templates", + "devDependencies": { + "browserify": "^13.0.1", + "eslint": "^3.0.0", + "git-directory-deploy": "^1.5.1", + "istanbul": "~0.4.3", + "jake": "^8.0.0", + "jsdoc": "^3.4.0", + "lru-cache": "^4.0.1", + "mocha": "^3.0.2", + "uglify-js": "^2.6.2" + }, + "directories": {}, + "dist": { + "shasum": "6ef4e954ea7dcf54f66aad2fe7aa421932d9ed77", + "tarball": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/mde/ejs", + "keywords": [ + "template", + "engine", + "ejs" + ], + "license": "Apache-2.0", + "main": "./lib/ejs.js", + "maintainers": [ + { + "name": "mde", + "email": "mde@fleegix.org" + } + ], + "name": "ejs", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://github.com/mde/ejs.git" + }, + "scripts": { + "coverage": "istanbul cover node_modules/mocha/bin/_mocha", + "devdoc": "jake doc[dev]", + "doc": "jake doc", + "lint": "eslint \"**/*.js\" Jakefile", + "test": "mocha" + }, + "version": "2.5.5" +} diff --git a/docs/resources-reference/v1.7/node_modules/ejs/test/ejs.js b/docs/resources-reference/v1.7/node_modules/ejs/test/ejs.js new file mode 100644 index 0000000000000..80e55a246e9fe --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/ejs/test/ejs.js @@ -0,0 +1,994 @@ +/* jshint mocha: true */ +/* eslint-env node, mocha */ + +/** + * Module dependencies. + */ + +var ejs = require('..'); +var fs = require('fs'); +var read = fs.readFileSync; +var assert = require('assert'); +var path = require('path'); +var LRU = require('lru-cache'); + +try { + fs.mkdirSync(__dirname + '/tmp'); +} catch (ex) { + if (ex.code !== 'EEXIST') { + throw ex; + } +} + +// From https://gist.github.com/pguillory/729616 +function hook_stdio(stream, callback) { + var old_write = stream.write; + + stream.write = (function() { + return function(string, encoding, fd) { + callback(string, encoding, fd); + }; + })(stream.write); + + return function() { + stream.write = old_write; + }; +} + +/** + * Load fixture `name`. + */ + +function fixture(name) { + return read('test/fixtures/' + name, 'utf8'); +} + +/** + * User fixtures. + */ + +var users = []; +users.push({name: 'geddy'}); +users.push({name: 'neil'}); +users.push({name: 'alex'}); + +suite('ejs.compile(str, options)', function () { + test('compile to a function', function () { + var fn = ejs.compile('

yay

'); + assert.equal(fn(), '

yay

'); + }); + + test('empty input works', function () { + var fn = ejs.compile(''); + assert.equal(fn(), ''); + }); + + test('throw if there are syntax errors', function () { + try { + ejs.compile(fixture('fail.ejs')); + } + catch (err) { + assert.ok(err.message.indexOf('compiling ejs') > -1); + + try { + ejs.compile(fixture('fail.ejs'), {filename: 'fail.ejs'}); + } + catch (err) { + assert.ok(err.message.indexOf('fail.ejs') > -1); + return; + } + } + throw new Error('no error reported when there should be'); + }); + + test('allow customizing delimiter local var', function () { + var fn; + fn = ejs.compile('

', {delimiter: '?'}); + assert.equal(fn({name: 'geddy'}), '

geddy

'); + + fn = ejs.compile('

<:= name :>

', {delimiter: ':'}); + assert.equal(fn({name: 'geddy'}), '

geddy

'); + + fn = ejs.compile('

<$= name $>

', {delimiter: '$'}); + assert.equal(fn({name: 'geddy'}), '

geddy

'); + }); + + test('default to using ejs.delimiter', function () { + var fn; + ejs.delimiter = '&'; + fn = ejs.compile('

<&= name &>

'); + assert.equal(fn({name: 'geddy'}), '

geddy

'); + + fn = ejs.compile('

<|= name |>

', {delimiter: '|'}); + assert.equal(fn({name: 'geddy'}), '

geddy

'); + delete ejs.delimiter; + }); + + test('have a working client option', function () { + var fn; + var str; + var preFn; + fn = ejs.compile('

<%= foo %>

', {client: true}); + str = fn.toString(); + if (!process.env.running_under_istanbul) { + eval('var preFn = ' + str); + assert.equal(preFn({foo: 'bar'}), '

bar

'); + } + }); + + test('support client mode without locals', function () { + var fn; + var str; + var preFn; + fn = ejs.compile('

<%= "foo" %>

', {client: true}); + str = fn.toString(); + if (!process.env.running_under_istanbul) { + eval('var preFn = ' + str); + assert.equal(preFn(), '

foo

'); + } + }); + + test('not include rethrow() in client mode if compileDebug is false', function () { + var fn = ejs.compile('

<%= "foo" %>

', { + client: true, + compileDebug: false + }); + // There could be a `rethrow` in the function declaration + assert((fn.toString().match(/rethrow/g) || []).length <= 1); + }); + + test('support custom escape function', function () { + var customEscape; + var fn; + customEscape = function customEscape(str) { + return !str ? '' : str.toUpperCase(); + }; + fn = ejs.compile('HELLO <%= name %>', {escape: customEscape}); + assert.equal(fn({name: 'world'}), 'HELLO WORLD'); + }); + + test('support custom escape function in client mode', function () { + var customEscape; + var fn; + var str; + customEscape = function customEscape(str) { + return !str ? '' : str.toUpperCase(); + }; + fn = ejs.compile('HELLO <%= name %>', {escape: customEscape, client: true}); + str = fn.toString(); + if (!process.env.running_under_istanbul) { + eval('var preFn = ' + str); + assert.equal(preFn({name: 'world'}), 'HELLO WORLD'); // eslint-disable-line no-undef + } + }); + + test('strict mode works', function () { + assert.equal(ejs.render(fixture('strict.ejs'), {}, {strict: true}), 'true'); + }); + +}); + +/* Old API -- remove when this shim goes away */ +suite('ejs.render(str, dataAndOpts)', function () { + test('render the template with data/opts passed together', function () { + assert.equal(ejs.render('

', {foo: 'yay', delimiter: '?'}), + '

yay

'); + }); + + test('disallow unsafe opts passed along in data', function () { + assert.equal(ejs.render('

', + // localsName should not get reset because it's blacklisted + {_with: false, foo: 'yay', delimiter: '?', localsName: '_'}), + '

yay

'); + }); +}); + +suite('ejs.render(str, data, opts)', function () { + test('render the template', function () { + assert.equal(ejs.render('

yay

'), '

yay

'); + }); + + test('empty input works', function () { + assert.equal(ejs.render(''), ''); + }); + + test('undefined renders nothing escaped', function () { + assert.equal(ejs.render('<%= undefined %>'), ''); + }); + + test('undefined renders nothing raw', function () { + assert.equal(ejs.render('<%- undefined %>'), ''); + }); + + test('null renders nothing escaped', function () { + assert.equal(ejs.render('<%= null %>'), ''); + }); + + test('null renders nothing raw', function () { + assert.equal(ejs.render('<%- null %>'), ''); + }); + + test('zero-value data item renders something escaped', function () { + assert.equal(ejs.render('<%= 0 %>'), '0'); + }); + + test('zero-value data object renders something raw', function () { + assert.equal(ejs.render('<%- 0 %>'), '0'); + }); + + test('accept locals', function () { + assert.equal(ejs.render('

<%= name %>

', {name: 'geddy'}), + '

geddy

'); + }); + + test('accept locals without using with() {}', function () { + assert.equal(ejs.render('

<%= locals.name %>

', {name: 'geddy'}, + {_with: false}), + '

geddy

'); + assert.throws(function() { + ejs.render('

<%= name %>

', {name: 'geddy'}, + {_with: false}); + }, /name is not defined/); + }); + + test('accept custom name for locals', function () { + ejs.localsName = 'it'; + assert.equal(ejs.render('

<%= it.name %>

', {name: 'geddy'}, + {_with: false}), + '

geddy

'); + assert.throws(function() { + ejs.render('

<%= name %>

', {name: 'geddy'}, + {_with: false}); + }, /name is not defined/); + ejs.localsName = 'locals'; + }); + + test('support caching', function () { + var file = __dirname + '/tmp/render.ejs'; + var options = {cache: true, filename: file}; + var out = ejs.render('

Old

', {}, options); + var expected = '

Old

'; + assert.equal(out, expected); + // Assert no change, still in cache + out = ejs.render('

New

', {}, options); + assert.equal(out, expected); + }); + + test('support LRU caching', function () { + var oldCache = ejs.cache; + var file = __dirname + '/tmp/render.ejs'; + var options = {cache: true, filename: file}; + var out; + var expected = '

Old

'; + + // Switch to LRU + ejs.cache = LRU(); + + out = ejs.render('

Old

', {}, options); + assert.equal(out, expected); + // Assert no change, still in cache + out = ejs.render('

New

', {}, options); + assert.equal(out, expected); + + // Restore system cache + ejs.cache = oldCache; + }); + + test('opts.context', function () { + var ctxt = {foo: 'FOO'}; + var out = ejs.render('<%= this.foo %>', {}, {context: ctxt}); + assert.equal(out, ctxt.foo); + }); +}); + +suite('ejs.renderFile(path, [data], [options], fn)', function () { + test('render a file', function(done) { + ejs.renderFile('test/fixtures/para.ejs', function(err, html) { + if (err) { + return done(err); + } + assert.equal(html, '

hey

\n'); + done(); + }); + }); + + test('accept locals', function(done) { + var data = {name: 'fonebone'}; + var options = {delimiter: '$'}; + ejs.renderFile('test/fixtures/user.ejs', data, options, function(err, html) { + if (err) { + return done(err); + } + assert.equal(html, '

fonebone

\n'); + done(); + }); + }); + + test('accept locals without using with() {}', function(done) { + var data = {name: 'fonebone'}; + var options = {delimiter: '$', _with: false}; + var doneCount = 0; + ejs.renderFile('test/fixtures/user-no-with.ejs', data, options, function(err, html) { + if (err) { + if (doneCount === 2) { + return; + } + doneCount = 2; + return done(err); + } + assert.equal(html, '

fonebone

\n'); + doneCount++; + if (doneCount === 2) { + done(); + } + }); + ejs.renderFile('test/fixtures/user.ejs', data, options, function(err) { + if (!err) { + if (doneCount === 2) { + return; + } + doneCount = 2; + return done(new Error('error not thrown')); + } + doneCount++; + if (doneCount === 2) { + done(); + } + }); + }); + + test('not catch err thrown by callback', function(done) { + var data = {name: 'fonebone'}; + var options = {delimiter: '$'}; + var counter = 0; + + var d = require('domain').create(); + d.on('error', function (err) { + assert.equal(counter, 1); + assert.equal(err.message, 'Exception in callback'); + done(); + }); + d.run(function () { + // process.nextTick() needed to work around mochajs/mocha#513 + // + // tl;dr: mocha doesn't support synchronous exception throwing in + // domains. Have to make it async. Ticket closed because: "domains are + // deprecated :D" + process.nextTick(function () { + ejs.renderFile('test/fixtures/user.ejs', data, options, function(err) { + counter++; + if (err) { + assert.notEqual(err.message, 'Exception in callback'); + return done(err); + } + throw new Error('Exception in callback'); + }); + }); + }); + }); + + test('support caching', function (done) { + var expected = '

Old

'; + var file = __dirname + '/tmp/renderFile.ejs'; + var options = {cache: true}; + fs.writeFileSync(file, '

Old

'); + + ejs.renderFile(file, {}, options, function (err, out) { + if (err) { + done(err); + } + fs.writeFileSync(file, '

New

'); + assert.equal(out, expected); + + ejs.renderFile(file, {}, options, function (err, out) { + if (err) { + done(err); + } + // Assert no change, still in cache + assert.equal(out, expected); + done(); + }); + }); + }); + + test('opts.context', function (done) { + var ctxt = {foo: 'FOO'}; + ejs.renderFile('test/fixtures/with-context.ejs', {}, {context: ctxt}, function(err, html) { + if (err) { + return done(err); + } + assert.equal(html, ctxt.foo + '\n'); + done(); + }); + + }); +}); + +suite('cache specific', function () { + test('`clearCache` work properly', function () { + var expected = '

Old

'; + var file = __dirname + '/tmp/clearCache.ejs'; + var options = {cache: true, filename: file}; + var out = ejs.render('

Old

', {}, options); + assert.equal(out, expected); + + ejs.clearCache(); + + expected = '

New

'; + out = ejs.render('

New

', {}, options); + assert.equal(out, expected); + }); + + test('`clearCache` work properly, LRU', function () { + var expected = '

Old

'; + var oldCache = ejs.cache; + var file = __dirname + '/tmp/clearCache.ejs'; + var options = {cache: true, filename: file}; + var out; + + ejs.cache = LRU(); + + out = ejs.render('

Old

', {}, options); + assert.equal(out, expected); + ejs.clearCache(); + expected = '

New

'; + out = ejs.render('

New

', {}, options); + assert.equal(out, expected); + + ejs.cache = oldCache; + }); + + test('LRU with cache-size 1', function () { + var oldCache = ejs.cache; + var options; + var out; + var expected; + var file; + + ejs.cache = LRU(1); + + file = __dirname + '/tmp/render1.ejs'; + options = {cache: true, filename: file}; + out = ejs.render('

File1

', {}, options); + expected = '

File1

'; + assert.equal(out, expected); + + // Same filename, different template, but output + // should be the same because cache + file = __dirname + '/tmp/render1.ejs'; + options = {cache: true, filename: file}; + out = ejs.render('

ChangedFile1

', {}, options); + expected = '

File1

'; + assert.equal(out, expected); + + // Different filiename -- output should be different, + // and previous cache-entry should be evicted + file = __dirname + '/tmp/render2.ejs'; + options = {cache: true, filename: file}; + out = ejs.render('

File2

', {}, options); + expected = '

File2

'; + assert.equal(out, expected); + + // Entry with first filename should now be out of cache, + // results should be different + file = __dirname + '/tmp/render1.ejs'; + options = {cache: true, filename: file}; + out = ejs.render('

ChangedFile1

', {}, options); + expected = '

ChangedFile1

'; + assert.equal(out, expected); + + ejs.cache = oldCache; + }); +}); + +suite('<%', function () { + test('without semicolons', function () { + assert.equal(ejs.render(fixture('no.semicolons.ejs')), + fixture('no.semicolons.html')); + }); +}); + +suite('<%=', function () { + test('should not throw an error with a // comment on the final line', function () { + assert.equal(ejs.render('<%=\n// a comment\nname\n// another comment %>', {name: '  + +``` + +This will find and highlight code inside of `
` tags; it tries
+to detect the language automatically. If automatic detection doesn’t
+work for you, you can specify the language in the `class` attribute:
+
+```html
+
...
+``` + +The list of supported language classes is available in the [class +reference][2]. Classes can also be prefixed with either `language-` or +`lang-`. + +To disable highlighting altogether use the `nohighlight` class: + +```html +
...
+``` + +## Custom Initialization + +When you need a bit more control over the initialization of +highlight.js, you can use the [`highlightBlock`][3] and [`configure`][4] +functions. This allows you to control *what* to highlight and *when*. + +Here’s an equivalent way to calling [`initHighlightingOnLoad`][1] using +jQuery: + +```javascript +$(document).ready(function() { + $('pre code').each(function(i, block) { + hljs.highlightBlock(block); + }); +}); +``` + +You can use any tags instead of `
` to mark up your code. If
+you don't use a container that preserve line breaks you will need to
+configure highlight.js to use the `
` tag: + +```javascript +hljs.configure({useBR: true}); + +$('div.code').each(function(i, block) { + hljs.highlightBlock(block); +}); +``` + +For other options refer to the documentation for [`configure`][4]. + + +## Web Workers + +You can run highlighting inside a web worker to avoid freezing the browser +window while dealing with very big chunks of code. + +In your main script: + +```javascript +addEventListener('load', function() { + var code = document.querySelector('#code'); + var worker = new Worker('worker.js'); + worker.onmessage = function(event) { code.innerHTML = event.data; } + worker.postMessage(code.textContent); +}) +``` + +In worker.js: + +```javascript +onmessage = function(event) { + importScripts('/highlight.pack.js'); + var result = self.hljs.highlightAuto(event.data); + postMessage(result.value); +} +``` + + +## Getting the Library + +You can get highlight.js as a hosted, or custom-build, browser script or +as a server module. Right out of the box the browser script supports +both AMD and CommonJS, so if you wish you can use RequireJS or +Browserify without having to build from source. The server module also +works perfectly fine with Browserify, but there is the option to use a +build specific to browsers rather than something meant for a server. +Head over to the [download page][5] for all the options. + +**Don't link to GitHub directly.** The library is not supposed to work straight +from the source, it requires building. If none of the pre-packaged options +work for you refer to the [building documentation][6]. + +**The CDN-hosted package doesn't have all the languages.** Otherwise it'd be +too big. If you don't see the language you need in the ["Common" section][5], +it can be added manually: + +```html + +``` + +**On Almond.** You need to use the optimizer to give the module a name. For +example: + +``` +r.js -o name=hljs paths.hljs=/path/to/highlight out=highlight.js +``` + + +## License + +Highlight.js is released under the BSD License. See [LICENSE][7] file +for details. + +## Links + +The official site for the library is at . + +Further in-depth documentation for the API and other topics is at +. + +Authors and contributors are listed in the [AUTHORS.en.txt][8] file. + +[1]: http://highlightjs.readthedocs.io/en/latest/api.html#inithighlightingonload +[2]: http://highlightjs.readthedocs.io/en/latest/css-classes-reference.html +[3]: http://highlightjs.readthedocs.io/en/latest/api.html#highlightblock-block +[4]: http://highlightjs.readthedocs.io/en/latest/api.html#configure-options +[5]: https://highlightjs.org/download/ +[6]: http://highlightjs.readthedocs.io/en/latest/building-testing.html +[7]: https://github.com/isagalaev/highlight.js/blob/master/LICENSE +[8]: https://github.com/isagalaev/highlight.js/blob/master/AUTHORS.en.txt diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/api.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/api.rst new file mode 100644 index 0000000000000..d8039539d3f86 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/api.rst @@ -0,0 +1,120 @@ +Library API +=========== + +Highlight.js exports a few functions as methods of the ``hljs`` object. + + +``highlight(name, value, ignore_illegals, continuation)`` +--------------------------------------------------------- + +Core highlighting function. +Accepts a language name, or an alias, and a string with the code to highlight. +The ``ignore_illegals`` parameter, when present and evaluates to a true value, +forces highlighting to finish even in case of detecting illegal syntax for the +language instead of throwing an exception. +The ``continuation`` is an optional mode stack representing unfinished parsing. +When present, the function will restart parsing from this state instead of +initializing a new one. +Returns an object with the following properties: + +* ``language``: language name, same as the one passed into a function, returned for consistency with ``highlightAuto`` +* ``relevance``: integer value +* ``value``: HTML string with highlighting markup +* ``top``: top of the current mode stack + + +``highlightAuto(value, languageSubset)`` +---------------------------------------- + +Highlighting with language detection. +Accepts a string with the code to highlight and an optional array of language names and aliases restricting detection to only those languages. The subset can also be set with ``configure``, but the local parameter overrides the option if set. +Returns an object with the following properties: + +* ``language``: detected language +* ``relevance``: integer value +* ``value``: HTML string with highlighting markup +* ``second_best``: object with the same structure for second-best heuristically detected language, may be absent + + +``fixMarkup(value)`` +-------------------- + +Post-processing of the highlighted markup. Currently consists of replacing indentation TAB characters and using ``
`` tags instead of new-line characters. Options are set globally with ``configure``. + +Accepts a string with the highlighted markup. + + +``highlightBlock(block)`` +------------------------- + +Applies highlighting to a DOM node containing code. + +This function is the one to use to apply highlighting dynamically after page load +or within initialization code of third-party Javascript frameworks. + +The function uses language detection by default but you can specify the language +in the ``class`` attribute of the DOM node. See the :doc:`class reference +` for all available language names and aliases. + + +``configure(options)`` +---------------------- + +Configures global options: + +* ``tabReplace``: a string used to replace TAB characters in indentation. +* ``useBR``: a flag to generate ``
`` tags instead of new-line characters in the output, useful when code is marked up using a non-``
`` container.
+* ``classPrefix``: a string prefix added before class names in the generated markup, used for backwards compatibility with stylesheets.
+* ``languages``: an array of language names and aliases restricting auto detection to only these languages.
+
+Accepts an object representing options with the values to updated. Other options don't change
+::
+
+  hljs.configure({
+    tabReplace: '    ', // 4 spaces
+    classPrefix: ''     // don't append class prefix
+                        // … other options aren't changed
+  })
+  hljs.initHighlighting();
+
+
+``initHighlighting()``
+----------------------
+
+Applies highlighting to all ``
..
`` blocks on a page. + + + +``initHighlightingOnLoad()`` +---------------------------- + +Attaches highlighting to the page load event. + + +``registerLanguage(name, language)`` +------------------------------------ + +Adds new language to the library under the specified name. Used mostly internally. + +* ``name``: a string with the name of the language being registered +* ``language``: a function that returns an object which represents the + language definition. The function is passed the ``hljs`` object to be able + to use common regular expressions defined within it. + + +``listLanguages()`` +---------------------------- + +Returns the languages names list. + + + +.. _getLanguage: + + +``getLanguage(name)`` +--------------------- + +Looks up a language by name or alias. + +Returns the language object if found, ``undefined`` otherwise. diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/building-testing.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/building-testing.rst new file mode 100644 index 0000000000000..16292cb84a155 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/building-testing.rst @@ -0,0 +1,88 @@ +Building and testing +==================== + +To actually run highlight.js it is necessary to build it for the environment +where you're going to run it: a browser, the node.js server, etc. + + +Building +-------- + +The build tool is written in JavaScript using node.js. Before running the +script, make sure to have node installed and run ``npm install`` to get the +dependencies. + +The tool is located in ``tools/build.js``. A few useful examples: + +* Build for a browser using only common languages:: + + node tools/build.js :common + +* Build for node.js including all available languages:: + + node tools/build.js -t node + +* Build two specific languages for debugging, skipping compression in this case:: + + node tools/build.js -n python ruby + +On some systems the node binary is named ``nodejs``; simply replace ``node`` +with ``nodejs`` in the examples above if that is the case. + +The full option reference is available with the usual ``--help`` option. + +The build result will be in the ``build/`` directory. + +.. _basic-testing: + +Basic testing +------------- + +The usual approach to debugging and testing a language is first doing it +visually. You need to build highlight.js with only the language you're working +on (without compression, to have readable code in browser error messages) and +then use the Developer tool in ``tools/developer.html`` to see how it highlights +a test snippet in that language. + +A test snippet should be short and give the idea of the overall look of the +language. It shouldn't include every possible syntactic element and shouldn't +even make practical sense. + +After you satisfied with the result you need to make sure that language +detection still works with your language definition included in the whole suite. + +Testing is done using `Mocha `_ and the +files are found in the ``test/`` directory. You can use the node build to +run the tests in the command line with ``npm test`` after installing the +dependencies with ``npm install``. + +**Note**: for Debian-based machine, like Ubuntu, you might need to create an +alias or symbolic link for nodejs to node. The reason for this is the +dependencies that are requires to test highlight.js has a reference to +"node". + +Place the snippet you used inside the browser in +``test/detect//default.txt``, build the package with all the languages +for node and run the test suite. If your language breaks auto-detection, it +should be fixed by :ref:`improving relevance `, which is a black art +in and of itself. When in doubt, please refer to the discussion group! + + +Testing markup +-------------- + +You can also provide additional markup tests for the language to test isolated +cases of various syntactic construct. If your language has 19 different string +literals or complicated heuristics for telling division (``/``) apart from +regexes (``/ .. /``) -- this is the place. + +A test case consists of two files: + +* ``test/markup//.txt``: test code +* ``test/markup//.expect.txt``: reference rendering + +To generate reference rendering use the Developer tool located at +``tools/developer.html``. Make sure to explicitly select your language in the +drop-down menu, as automatic detection is unlikely to work in this case. + + diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/css-classes-reference.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/css-classes-reference.rst new file mode 100644 index 0000000000000..9861beb5202e2 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/css-classes-reference.rst @@ -0,0 +1,424 @@ +CSS classes reference +===================== + + +Stylable classes +---------------- + ++------------------------------------------------------------------------------+ +| **General-purpose** | ++--------------------------+---------------------------------------------------+ +| keyword | keyword in a regular Algol-style language | ++--------------------------+---------------------------------------------------+ +| built_in | built-in or library object (constant, class, | +| | function) | ++--------------------------+---------------------------------------------------+ +| type | user-defined type in a language with first-class | +| | syntactically significant types, like Haskell | ++--------------------------+---------------------------------------------------+ +| literal | special identifier for a built-in value ("true", | +| | "false", "null") | ++--------------------------+---------------------------------------------------+ +| number | number, including units and modifiers, if any. | ++--------------------------+---------------------------------------------------+ +| regexp | literal regular expression | ++--------------------------+---------------------------------------------------+ +| string | literal string, character | ++--------------------------+---------------------------------------------------+ +| subst | parsed section inside a literal string | ++--------------------------+---------------------------------------------------+ +| symbol | symbolic constant, interned string, goto label | ++--------------------------+---------------------------------------------------+ +| class | class or class-level declaration (interfaces, | +| | traits, modules, etc) | ++--------------------------+---------------------------------------------------+ +| function | function or method declaration | ++--------------------------+---------------------------------------------------+ +| title | name of a class or a function at the place of | +| | declaration | ++--------------------------+---------------------------------------------------+ +| params | block of function arguments (parameters) at the | +| | place of declaration | ++--------------------------+---------------------------------------------------+ +| **Meta** | ++--------------------------+---------------------------------------------------+ +| comment | comment | ++--------------------------+---------------------------------------------------+ +| doctag | documentation markup within comments | ++--------------------------+---------------------------------------------------+ +| meta | flags, modifiers, annotations, processing | +| | instructions, preprocessor directive, etc | ++--------------------------+---------------------------------------------------+ +| meta-keyword | keyword or built-in within meta construct | ++--------------------------+---------------------------------------------------+ +| meta-string | string within meta construct | ++--------------------------+---------------------------------------------------+ +| **Tags, attributes, configs** | ++--------------------------+---------------------------------------------------+ +| section | heading of a section in a config file, heading in | +| | text markup | ++--------------------------+---------------------------------------------------+ +| tag | XML/HTML tag | ++--------------------------+---------------------------------------------------+ +| name | name of an XML tag, the first word in an | +| | s-expression | ++--------------------------+---------------------------------------------------+ +| builtin-name | s-expression name from the language standard | +| | library | ++--------------------------+---------------------------------------------------+ +| attr | name of an attribute with no language defined | +| | semantics (keys in JSON, setting names in .ini), | +| | also sub-attribute within another highlighted | +| | object, like XML tag | ++--------------------------+---------------------------------------------------+ +| attribute | name of an attribute followed by a structured | +| | value part, like CSS properties | ++--------------------------+---------------------------------------------------+ +| variable | variable in a config or a template file, | +| | environment var expansion in a script | ++--------------------------+---------------------------------------------------+ +| **Markup** | ++--------------------------+---------------------------------------------------+ +| bullet | list item bullet in text markup | ++--------------------------+---------------------------------------------------+ +| code | code block in text markup | ++--------------------------+---------------------------------------------------+ +| emphasis | emphasis in text markup | ++--------------------------+---------------------------------------------------+ +| strong | strong emphasis in text markup | ++--------------------------+---------------------------------------------------+ +| formula | mathematical formula in text markup | ++--------------------------+---------------------------------------------------+ +| link | hyperlink in text markup | ++--------------------------+---------------------------------------------------+ +| quote | quotation in text markup | ++--------------------------+---------------------------------------------------+ +| **CSS** | ++--------------------------+---------------------------------------------------+ +| selector-tag | tag selector in CSS | ++--------------------------+---------------------------------------------------+ +| selector-id | #id selector in CSS | ++--------------------------+---------------------------------------------------+ +| selector-class | .class selector in CSS | ++--------------------------+---------------------------------------------------+ +| selector-attr | [attr] selector in CSS | ++--------------------------+---------------------------------------------------+ +| selector-pseudo | :pseudo selector in CSS | ++--------------------------+---------------------------------------------------+ +| **Templates** | ++--------------------------+---------------------------------------------------+ +| template-tag | tag of a template language | ++--------------------------+---------------------------------------------------+ +| template-variable | variable in a template language | ++--------------------------+---------------------------------------------------+ +| **diff** | ++--------------------------+---------------------------------------------------+ +| addition | added or changed line in a diff | ++--------------------------+---------------------------------------------------+ +| deletion | deleted line in a diff | ++--------------------------+---------------------------------------------------+ + + +Language names and aliases +-------------------------- + ++-------------------------+---------------------------------------------------+ +| 1C | 1c | ++-------------------------+---------------------------------------------------+ +| ABNF | abnf | ++-------------------------+---------------------------------------------------+ +| Access logs | accesslog | ++-------------------------+---------------------------------------------------+ +| Ada | ada | ++-------------------------+---------------------------------------------------+ +| ARM assembler | armasm, arm | ++-------------------------+---------------------------------------------------+ +| AVR assembler | avrasm | ++-------------------------+---------------------------------------------------+ +| ActionScript | actionscript, as | ++-------------------------+---------------------------------------------------+ +| Apache | apache, apacheconf | ++-------------------------+---------------------------------------------------+ +| AppleScript | applescript, osascript | ++-------------------------+---------------------------------------------------+ +| AsciiDoc | asciidoc, adoc | ++-------------------------+---------------------------------------------------+ +| AspectJ | aspectj | ++-------------------------+---------------------------------------------------+ +| AutoHotkey | autohotkey | ++-------------------------+---------------------------------------------------+ +| AutoIt | autoit | ++-------------------------+---------------------------------------------------+ +| Awk | awk, mawk, nawk, gawk | ++-------------------------+---------------------------------------------------+ +| Axapta | axapta | ++-------------------------+---------------------------------------------------+ +| Bash | bash, sh, zsh | ++-------------------------+---------------------------------------------------+ +| Basic | basic | ++-------------------------+---------------------------------------------------+ +| BNF | bnf | ++-------------------------+---------------------------------------------------+ +| Brainfuck | brainfuck, bf | ++-------------------------+---------------------------------------------------+ +| C# | cs, csharp | ++-------------------------+---------------------------------------------------+ +| C++ | cpp, c, cc, h, c++, h++, hpp | ++-------------------------+---------------------------------------------------+ +| C/AL | cal | ++-------------------------+---------------------------------------------------+ +| Cache Object Script | cos, cls | ++-------------------------+---------------------------------------------------+ +| CMake | cmake, cmake.in | ++-------------------------+---------------------------------------------------+ +| Coq | coq | ++-------------------------+---------------------------------------------------+ +| CSP | csp | ++-------------------------+---------------------------------------------------+ +| CSS | css | ++-------------------------+---------------------------------------------------+ +| Cap’n Proto | capnproto, capnp | ++-------------------------+---------------------------------------------------+ +| Clojure | clojure, clj | ++-------------------------+---------------------------------------------------+ +| CoffeeScript | coffeescript, coffee, cson, iced | ++-------------------------+---------------------------------------------------+ +| Crmsh | crmsh, crm, pcmk | ++-------------------------+---------------------------------------------------+ +| Crystal | crystal, cr | ++-------------------------+---------------------------------------------------+ +| D | d | ++-------------------------+---------------------------------------------------+ +| DNS Zone file | dns, zone, bind | ++-------------------------+---------------------------------------------------+ +| DOS | dos, bat, cmd | ++-------------------------+---------------------------------------------------+ +| Dart | dart | ++-------------------------+---------------------------------------------------+ +| Delphi | delphi, dpr, dfm, pas, pascal, freepascal, | +| | lazarus, lpr, lfm | ++-------------------------+---------------------------------------------------+ +| Diff | diff, patch | ++-------------------------+---------------------------------------------------+ +| Django | django, jinja | ++-------------------------+---------------------------------------------------+ +| Dockerfile | dockerfile, docker | ++-------------------------+---------------------------------------------------+ +| dsconfig | dsconfig | ++-------------------------+---------------------------------------------------+ +| DTS (Device Tree) | dts | ++-------------------------+---------------------------------------------------+ +| Dust | dust, dst | ++-------------------------+---------------------------------------------------+ +| EBNF | ebnf | ++-------------------------+---------------------------------------------------+ +| Elixir | elixir | ++-------------------------+---------------------------------------------------+ +| Elm | elm | ++-------------------------+---------------------------------------------------+ +| Erlang | erlang, erl | ++-------------------------+---------------------------------------------------+ +| Excel | excel, xls, xlsx | ++-------------------------+---------------------------------------------------+ +| F# | fsharp, fs | ++-------------------------+---------------------------------------------------+ +| FIX | fix | ++-------------------------+---------------------------------------------------+ +| Fortran | fortran, f90, f95 | ++-------------------------+---------------------------------------------------+ +| G-Code | gcode, nc | ++-------------------------+---------------------------------------------------+ +| Gams | gams, gms | ++-------------------------+---------------------------------------------------+ +| GAUSS | gauss, gss | ++-------------------------+---------------------------------------------------+ +| Gherkin | gherkin | ++-------------------------+---------------------------------------------------+ +| Go | go, golang | ++-------------------------+---------------------------------------------------+ +| Golo | golo, gololang | ++-------------------------+---------------------------------------------------+ +| Gradle | gradle | ++-------------------------+---------------------------------------------------+ +| Groovy | groovy | ++-------------------------+---------------------------------------------------+ +| HTML, XML | xml, html, xhtml, rss, atom, xjb, xsd, xsl, plist | ++-------------------------+---------------------------------------------------+ +| HTTP | http, https | ++-------------------------+---------------------------------------------------+ +| Haml | haml | ++-------------------------+---------------------------------------------------+ +| Handlebars | handlebars, hbs, html.hbs, html.handlebars | ++-------------------------+---------------------------------------------------+ +| Haskell | haskell, hs | ++-------------------------+---------------------------------------------------+ +| Haxe | haxe, hx | ++-------------------------+---------------------------------------------------+ +| Ini | ini | ++-------------------------+---------------------------------------------------+ +| Inform7 | inform7, i7 | ++-------------------------+---------------------------------------------------+ +| IRPF90 | irpf90 | ++-------------------------+---------------------------------------------------+ +| JSON | json | ++-------------------------+---------------------------------------------------+ +| Java | java, jsp | ++-------------------------+---------------------------------------------------+ +| JavaScript | javascript, js, jsx | ++-------------------------+---------------------------------------------------+ +| Lasso | lasso, ls, lassoscript | ++-------------------------+---------------------------------------------------+ +| Less | less | ++-------------------------+---------------------------------------------------+ +| LDIF | ldif | ++-------------------------+---------------------------------------------------+ +| Lisp | lisp | ++-------------------------+---------------------------------------------------+ +| LiveCode Server | livecodeserver | ++-------------------------+---------------------------------------------------+ +| LiveScript | livescript, ls | ++-------------------------+---------------------------------------------------+ +| Lua | lua | ++-------------------------+---------------------------------------------------+ +| Makefile | makefile, mk, mak | ++-------------------------+---------------------------------------------------+ +| Markdown | markdown, md, mkdown, mkd | ++-------------------------+---------------------------------------------------+ +| Mathematica | mathematica, mma | ++-------------------------+---------------------------------------------------+ +| Matlab | matlab | ++-------------------------+---------------------------------------------------+ +| Maxima | maxima | ++-------------------------+---------------------------------------------------+ +| Maya Embedded Language | mel | ++-------------------------+---------------------------------------------------+ +| Mercury | mercury | ++-------------------------+---------------------------------------------------+ +| Mizar | mizar | ++-------------------------+---------------------------------------------------+ +| Mojolicious | mojolicious | ++-------------------------+---------------------------------------------------+ +| Monkey | monkey | ++-------------------------+---------------------------------------------------+ +| Moonscript | moonscript, moon | ++-------------------------+---------------------------------------------------+ +| NSIS | nsis | ++-------------------------+---------------------------------------------------+ +| Nginx | nginx, nginxconf | ++-------------------------+---------------------------------------------------+ +| Nimrod | nimrod, nim | ++-------------------------+---------------------------------------------------+ +| Nix | nix | ++-------------------------+---------------------------------------------------+ +| OCaml | ocaml, ml | ++-------------------------+---------------------------------------------------+ +| Objective C | objectivec, mm, objc, obj-c | ++-------------------------+---------------------------------------------------+ +| OpenGL Shading Language | glsl | ++-------------------------+---------------------------------------------------+ +| OpenSCAD | openscad, scad | ++-------------------------+---------------------------------------------------+ +| Oracle Rules Language | ruleslanguage | ++-------------------------+---------------------------------------------------+ +| Oxygene | oxygene | ++-------------------------+---------------------------------------------------+ +| PF | pf, pf.conf | ++-------------------------+---------------------------------------------------+ +| PHP | php, php3, php4, php5, php6 | ++-------------------------+---------------------------------------------------+ +| Parser3 | parser3 | ++-------------------------+---------------------------------------------------+ +| Perl | perl, pl, pm | ++-------------------------+---------------------------------------------------+ +| Pony | pony | ++-------------------------+---------------------------------------------------+ +| PowerShell | powershell, ps | ++-------------------------+---------------------------------------------------+ +| Processing | processing | ++-------------------------+---------------------------------------------------+ +| Prolog | prolog | ++-------------------------+---------------------------------------------------+ +| Protocol Buffers | protobuf | ++-------------------------+---------------------------------------------------+ +| Puppet | puppet, pp | ++-------------------------+---------------------------------------------------+ +| Python | python, py, gyp | ++-------------------------+---------------------------------------------------+ +| Python profiler results | profile | ++-------------------------+---------------------------------------------------+ +| Q | k, kdb | ++-------------------------+---------------------------------------------------+ +| QML | qml | ++-------------------------+---------------------------------------------------+ +| R | r | ++-------------------------+---------------------------------------------------+ +| RenderMan RIB | rib | ++-------------------------+---------------------------------------------------+ +| RenderMan RSL | rsl | ++-------------------------+---------------------------------------------------+ +| Roboconf | graph, instances | ++-------------------------+---------------------------------------------------+ +| Ruby | ruby, rb, gemspec, podspec, thor, irb | ++-------------------------+---------------------------------------------------+ +| Rust | rust, rs | ++-------------------------+---------------------------------------------------+ +| SCSS | scss | ++-------------------------+---------------------------------------------------+ +| SQL | sql | ++-------------------------+---------------------------------------------------+ +| STEP Part 21 | p21, step, stp | ++-------------------------+---------------------------------------------------+ +| Scala | scala | ++-------------------------+---------------------------------------------------+ +| Scheme | scheme | ++-------------------------+---------------------------------------------------+ +| Scilab | scilab, sci | ++-------------------------+---------------------------------------------------+ +| Smali | smali | ++-------------------------+---------------------------------------------------+ +| Smalltalk | smalltalk, st | ++-------------------------+---------------------------------------------------+ +| Stan | stan | ++-------------------------+---------------------------------------------------+ +| Stata | stata | ++-------------------------+---------------------------------------------------+ +| Stylus | stylus, styl | ++-------------------------+---------------------------------------------------+ +| SubUnit | subunit | ++-------------------------+---------------------------------------------------+ +| Swift | swift | ++-------------------------+---------------------------------------------------+ +| Test Anything Protocol | tap | ++-------------------------+---------------------------------------------------+ +| Tcl | tcl, tk | ++-------------------------+---------------------------------------------------+ +| TeX | tex | ++-------------------------+---------------------------------------------------+ +| Thrift | thrift | ++-------------------------+---------------------------------------------------+ +| TP | tp | ++-------------------------+---------------------------------------------------+ +| Twig | twig, craftcms | ++-------------------------+---------------------------------------------------+ +| TypeScript | typescript, ts | ++-------------------------+---------------------------------------------------+ +| VB.Net | vbnet, vb | ++-------------------------+---------------------------------------------------+ +| VBScript | vbscript, vbs | ++-------------------------+---------------------------------------------------+ +| VHDL | vhdl | ++-------------------------+---------------------------------------------------+ +| Vala | vala | ++-------------------------+---------------------------------------------------+ +| Verilog | verilog, v | ++-------------------------+---------------------------------------------------+ +| Vim Script | vim | ++-------------------------+---------------------------------------------------+ +| x86 Assembly | x86asm | ++-------------------------+---------------------------------------------------+ +| XL | xl, tao | ++-------------------------+---------------------------------------------------+ +| XQuery | xpath, xq | ++-------------------------+---------------------------------------------------+ +| Zephir | zephir, zep | ++-------------------------+---------------------------------------------------+ diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/index.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/index.rst new file mode 100644 index 0000000000000..0559dfd2a70f6 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/index.rst @@ -0,0 +1,44 @@ +.. highlight.js documentation master file, created by + sphinx-quickstart on Wed Sep 12 23:48:27 2012. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +``highlight.js`` developer documentation +========================================== + +Contents: + +.. toctree:: + :maxdepth: 1 + + api + language-guide + reference + css-classes-reference + style-guide + language-contribution + building-testing + release-process + +Miscellaneous: + +.. toctree:: + :maxdepth: 1 + + line-numbers + language-requests + +Links: + +- Code: https://github.com/isagalaev/highlight.js +- Discussion: http://groups.google.com/group/highlightjs +- Bug tracking: https://github.com/isagalaev/highlight.js/issues + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` + diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-contribution.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-contribution.rst new file mode 100644 index 0000000000000..4deae3f3658f1 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-contribution.rst @@ -0,0 +1,78 @@ +Language contributor checklist +============================== + +1. Put language definition into a .js file +------------------------------------------ + +The file defines a function accepting a reference to the library and returning a language object. +The library parameter is useful to access common modes and regexps. You should not immediately call this function, +this is done during the build process and details differ for different build targets. + +:: + + function(hljs) { + return { + keywords: 'foo bar', + contains: [ ..., hljs.NUMBER_MODE, ... ] + } + } + +The name of the file is used as a short language identifier and should be usable as a class name in HTML and CSS. + + +2. Provide meta data +-------------------- + +At the top of the file there is a specially formatted comment with meta data processed by a build system. +Meta data format is simply key-value pairs each occupying its own line: + +:: + + /* + Language: Superlanguage + Requires: java.js, sql.js + Author: John Smith + Contributors: Mike Johnson <...@...>, Matt Wilson <...@...> + Description: Some cool language definition + */ + +``Language`` — the only required header giving a human-readable language name. + +``Requires`` — a list of other language files required for this language to work. +This make it possible to describe languages that extend definitions of other ones. +Required files aren't processed in any special way. +The build system just makes sure that they will be in the final package in +``LANGUAGES`` object. + +The meaning of the other headers is pretty obvious. + + +3. Create a code example +------------------------ + +The code example is used both to test language detection and for the demo page +on https://highlightjs.org/. Put it in ``test/detect//default.txt``. + +Take inspiration from other languages in ``test/detect/`` and read +:ref:`testing instructions ` for more details. + + +4. Write class reference +------------------------ + +Class reference lives in the :doc:`CSS classes reference `.. +Describe shortly names of all meaningful modes used in your language definition. + + +5. Add yourself to AUTHORS.*.txt and CHANGES.md +----------------------------------------------- + +If you're a new contributor add yourself to the authors list. Feel free to use +either English and/or Russian version. +Also it will be good to update CHANGES.md. + + +6. Create a pull request +------------------------ + +Send your contribution as a pull request on GitHub. diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-guide.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-guide.rst new file mode 100644 index 0000000000000..f48c748be32f9 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-guide.rst @@ -0,0 +1,264 @@ +Language definition guide +========================= + +Highlighting overview +--------------------- + +Programming language code consists of parts with different rules of parsing: keywords like ``for`` or ``if`` +don't make sense inside strings, strings may contain backslash-escaped symbols like ``\"`` +and comments usually don't contain anything interesting except the end of the comment. + +In highlight.js such parts are called "modes". + +Each mode consists of: + +* starting condition +* ending condition +* list of contained sub-modes +* lexing rules and keywords +* …exotic stuff like another language inside a language + +The parser's work is to look for modes and their keywords. +Upon finding, it wraps them into the markup ``...`` +and puts the name of the mode ("string", "comment", "number") +or a keyword group name ("keyword", "literal", "built-in") as the span's class name. + + +General syntax +-------------- + +A language definition is a JavaScript object describing the default parsing mode for the language. +This default mode contains sub-modes which in turn contain other sub-modes, effectively making the language definition a tree of modes. + +Here's an example: + +:: + + { + case_insensitive: true, // language is case-insensitive + keywords: 'for if while', + contains: [ + { + className: 'string', + begin: '"', end: '"' + }, + hljs.COMMENT( + '/\\*', // begin + '\\*/', // end + { + contains: [ + { + className: 'doc', begin: '@\\w+' + } + ] + } + ) + ] + } + +Usually the default mode accounts for the majority of the code and describes all language keywords. +A notable exception here is XML in which a default mode is just a user text that doesn't contain any keywords, +and most interesting parsing happens inside tags. + + +Keywords +-------- + +In the simple case language keywords are defined in a string, separated by space: + +:: + + { + keywords: 'else for if while' + } + +Some languages have different kinds of "keywords" that might not be called as such by the language spec +but are very close to them from the point of view of a syntax highlighter. These are all sorts of "literals", "built-ins", "symbols" and such. +To define such keyword groups the attribute ``keywords`` becomes an object each property of which defines its own group of keywords: + +:: + + { + keywords: { + keyword: 'else for if while', + literal: 'false true null' + } + } + +The group name becomes then a class name in a generated markup enabling different styling for different kinds of keywords. + +To detect keywords highlight.js breaks the processed chunk of code into separate words — a process called lexing. +The "word" here is defined by the regexp ``[a-zA-Z][a-zA-Z0-9_]*`` that works for keywords in most languages. +Different lexing rules can be defined by the ``lexemes`` attribute: + +:: + + { + lexemes '-[a-z]+', + keywords: '-import -export' + } + + +Sub-modes +--------- + +Sub-modes are listed in the ``contains`` attribute: + +:: + + { + keywords: '...', + contains: [ + hljs.QUOTE_STRING_MODE, + hljs.C_LINE_COMMENT, + { ... custom mode definition ... } + ] + } + +A mode can reference itself in the ``contains`` array by using a special keyword ``'self``'. +This is commonly used to define nested modes: + +:: + + { + className: 'object', + begin: '{', end: '}', + contains: [hljs.QUOTE_STRING_MODE, 'self'] + } + + +Comments +-------- + +To define custom comments it is recommended to use a built-in helper function ``hljs.COMMENT`` instead of describing the mode directly, as it also defines a few default sub-modes that improve language detection and do other nice things. + +Parameters for the function are: + +:: + + hljs.COMMENT( + begin, // begin regex + end, // end regex + extra // optional object with extra attributes to override defaults + // (for example {relevance: 0}) + ) + + +Markup generation +----------------- + +Modes usually generate actual highlighting markup — ```` elements with specific class names that are defined by the ``className`` attribute: + +:: + + { + contains: [ + { + className: 'string', + // ... other attributes + }, + { + className: 'number', + // ... + } + ] + } + +Names are not required to be unique, it's quite common to have several definitions with the same name. +For example, many languages have various syntaxes for strings, comments, etc… + +Sometimes modes are defined only to support specific parsing rules and aren't needed in the final markup. +A classic example is an escaping sequence inside strings allowing them to contain an ending quote. + +:: + + { + className: 'string', + begin: '"', end: '"', + contains: [{begin: '\\\\.'}], + } + +For such modes ``className`` attribute should be omitted so they won't generate excessive markup. + + +Mode attributes +--------------- + +Other useful attributes are defined in the :doc:`mode reference `. + + +.. _relevance: + +Relevance +--------- + +Highlight.js tries to automatically detect the language of a code fragment. +The heuristics is essentially simple: it tries to highlight a fragment with all the language definitions +and the one that yields most specific modes and keywords wins. The job of a language definition +is to help this heuristics by hinting relative relevance (or irrelevance) of modes. + +This is best illustrated by example. Python has special kinds of strings defined by prefix letters before the quotes: +``r"..."``, ``u"..."``. If a code fragment contains such strings there is a good chance that it's in Python. +So these string modes are given high relevance: + +:: + + { + className: 'string', + begin: 'r"', end: '"', + relevance: 10 + } + +On the other hand, conventional strings in plain single or double quotes aren't specific to any language +and it makes sense to bring their relevance to zero to lessen statistical noise: + +:: + + { + className: 'string', + begin: '"', end: '"', + relevance: 0 + } + +The default value for relevance is 1. When setting an explicit value it's recommended to use either 10 or 0. + +Keywords also influence relevance. Each of them usually has a relevance of 1, but there are some unique names +that aren't likely to be found outside of their languages, even in the form of variable names. +For example just having ``reinterpret_cast`` somewhere in the code is a good indicator that we're looking at C++. +It's worth to set relevance of such keywords a bit higher. This is done with a pipe: + +:: + + { + keywords: 'for if reinterpret_cast|10' + } + + +Illegal symbols +--------------- + +Another way to improve language detection is to define illegal symbols for a mode. +For example in Python first line of class definition (``class MyClass(object):``) cannot contain symbol "{" or a newline. +Presence of these symbols clearly shows that the language is not Python and the parser can drop this attempt early. + +Illegal symbols are defined as a a single regular expression: + +:: + + { + className: 'class', + illegal: '[${]' + } + + +Pre-defined modes and regular expressions +----------------------------------------- + +Many languages share common modes and regular expressions. Such expressions are defined in core highlight.js code +at the end under "Common regexps" and "Common modes" titles. Use them when possible. + + +Contributing +------------ + +Follow the :doc:`contributor checklist `. diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-requests.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-requests.rst new file mode 100644 index 0000000000000..4e4c2f0b61acc --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/language-requests.rst @@ -0,0 +1,17 @@ +On requesting new languages +=========================== + +This is a general answer to requests for adding new languages that appear from +time to time in the highlight.js issue tracker and discussion group. + + Highlight.js doesn't have a fundamental plan for implementing languages, + instead the project works by accepting language definitions from + interested contributors. There are also no rules at the moment forbidding + any languages from being added to the library, no matter how obscure or + weird. + + This means that there's no point in requesting a new language without + providing an implementation for it. If you want to see a particular language + included in highlight.js but cannot implement it, the best way to make it + happen is to get another developer interested in doing so. Here's our + :doc:`language-guide`. diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/line-numbers.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/line-numbers.rst new file mode 100644 index 0000000000000..674542d4edc19 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/line-numbers.rst @@ -0,0 +1,39 @@ +Line numbers +============ + +Highlight.js' notable lack of line numbers support is not an oversight but a +feature. Following is the explanation of this policy from the current project +maintainer (hey guys!): + + One of the defining design principles for highlight.js from the start was + simplicity. Not the simplicity of code (in fact, it's quite complex) but + the simplicity of usage and of the actual look of highlighted snippets on + HTML pages. Many highlighters, in my opinion, are overdoing it with such + things as separate colors for every single type of lexemes, striped + backgrounds, fancy buttons around code blocks and — yes — line numbers. + The more fancy stuff resides around the code the more it distracts a + reader from understanding it. + + This is why it's not a straightforward decision: this new feature will not + just make highlight.js better, it might actually make it worse simply by + making it look more bloated in blog posts around the Internet. This is why + I'm asking people to show that it's worth it. + + The only real use-case that ever was brought up in support of line numbers + is referencing code from the descriptive text around it. On my own blog I + was always solving this either with comments within the code itself or by + breaking the larger snippets into smaller ones and describing each small + part separately. I'm not saying that my solution is better. But I don't + see how line numbers are better either. And the only way to show that they + are better is to set up some usability research on the subject. I doubt + anyone would bother to do it. + + Then there's maintenance. So far the core code of highlight.js is + maintained by only one person — yours truly. Inclusion of any new code in + highlight.js means that from that moment I will have to fix bugs in it, + improve it further, make it work together with the rest of the code, + defend its design. And I don't want to do all this for the feature that I + consider "evil" and probably will never use myself. + +This position is `subject to discuss `_. +Also it doesn't stop anyone from forking the code and maintaining line-numbers implementation separately. diff --git a/docs/resources-reference/v1.7/node_modules/highlight.js/docs/reference.rst b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/reference.rst new file mode 100644 index 0000000000000..56879fbd9a63d --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/highlight.js/docs/reference.rst @@ -0,0 +1,324 @@ +Mode reference +============== + +Types +----- + +Types of attributes values in this reference: + ++------------+-------------------------------------------------------------------------------------+ +| identifier | String suitable to be used as a Javascript variable and CSS class name | +| | (i.e. mostly ``/[A-Za-z0-9_]+/``) | ++------------+-------------------------------------------------------------------------------------+ +| regexp | String representing a Javascript regexp. | +| | Note that since it's not a literal regexp all back-slashes should be repeated twice | ++------------+-------------------------------------------------------------------------------------+ +| boolean | Javascript boolean: ``true`` or ``false`` | ++------------+-------------------------------------------------------------------------------------+ +| number | Javascript number | ++------------+-------------------------------------------------------------------------------------+ +| object | Javascript object: ``{ ... }`` | ++------------+-------------------------------------------------------------------------------------+ +| array | Javascript array: ``[ ... ]`` | ++------------+-------------------------------------------------------------------------------------+ + + +Attributes +---------- + +case_insensitive +^^^^^^^^^^^^^^^^ + +**type**: boolean + +Case insensitivity of language keywords and regexps. Used only on the top-level mode. + + +aliases +^^^^^^^ + +**type**: array + +A list of additional names (besides the canonical one given by the filename) that can be used to identify a language in HTML classes and in a call to :ref:`getLanguage `. + + +className +^^^^^^^^^ + +**type**: identifier + +The name of the mode. It is used as a class name in HTML markup. + +Multiple modes can have the same name. This is useful when a language has multiple variants of syntax +for one thing like string in single or double quotes. + + +begin +^^^^^ + +**type**: regexp + +Regular expression starting a mode. For example a single quote for strings or two forward slashes for C-style comments. +If absent, ``begin`` defaults to a regexp that matches anything, so the mode starts immediately. + + +end +^^^ + +**type**: regexp + +Regular expression ending a mode. For example a single quote for strings or "$" (end of line) for one-line comments. + +It's often the case that a beginning regular expression defines the entire mode and doesn't need any special ending. +For example a number can be defined with ``begin: "\\b\\d+"`` which spans all the digits. + +If absent, ``end`` defaults to a regexp that matches anything, so the mode ends immediately. + +Sometimes a mode can end not by itself but implicitly with its containing (parent) mode. +This is achieved with :ref:`endsWithParent ` attribute. + + +beginKeywords +^^^^^^^^^^^^^^^^ + +**type**: string + +Used instead of ``begin`` for modes starting with keywords to avoid needless repetition: + +:: + + { + begin: '\\b(extends|implements) ', + keywords: 'extends implements' + } + +… becomes: + +:: + + { + beginKeywords: 'extends implements' + } + +Unlike the :ref:`keywords ` attribute, this one allows only a simple list of space separated keywords. +If you do need additional features of ``keywords`` or you just need more keywords for this mode you may include ``keywords`` along with ``beginKeywords``. + + +.. _endsWithParent: + +endsWithParent +^^^^^^^^^^^^^^ + +**type**: boolean + +A flag showing that a mode ends when its parent ends. + +This is best demonstrated by example. In CSS syntax a selector has a set of rules contained within symbols "{" and "}". +Individual rules separated by ";" but the last one in a set can omit the terminating semicolon: + +:: + + p { + width: 100%; color: red + } + +This is when ``endsWithParent`` comes into play: + +:: + + { + className: 'rules', begin: '{', end: '}', + contains: [ + {className: 'rule', /* ... */ end: ';', endsWithParent: true} + ] + } + +.. _endsParent: + +endsParent +^^^^^^^^^^^^^^ + +**type**: boolean + +Forces closing of the parent mode right after the current mode is closed. + +This is used for modes that don't have an easily expressible ending lexeme but +instead could be closed after the last interesting sub-mode is found. + +Here's an example with two ways of defining functions in Elixir, one using a +keyword ``do`` and another using a comma: + +:: + + def foo :clear, list do + :ok + end + + def foo, do: IO.puts "hello world" + +Note that in the first case the parameter list after the function title may also +include a comma. And iIf we're only interested in highlighting a title we can +tell it to end the function definition after itself: + +:: + + { + className: 'function', + beginKeywords: 'def', end: /\B\b/, + contains: [ + { + className: 'title', + begin: hljs.IDENT_RE, endsParent: true + } + ] + } + +(The ``end: /\B\b/`` regex tells function to never end by itself.) + +.. _lexemes: + +lexemes +^^^^^^^ + +**type**: regexp + +A regular expression that extracts individual lexemes from language text to find :ref:`keywords ` among them. +Default value is ``hljs.IDENT_RE`` which works for most languages. + + +.. _keywords: + +keywords +^^^^^^^^ + +**type**: object + +Keyword definition comes in two forms: + +* ``'for while if else weird_voodoo|10 ... '`` -- a string of space-separated keywords with an optional relevance over a pipe +* ``{'keyword': ' ... ', 'literal': ' ... '}`` -- an object whose keys are names of different kinds of keywords and values are keyword definition strings in the first form + +For detailed explanation see :doc:`Language definition guide `. + + +illegal +^^^^^^^ + +**type**: regexp + +A regular expression that defines symbols illegal for the mode. +When the parser finds a match for illegal expression it immediately drops parsing the whole language altogether. + + +excludeBegin, excludeEnd +^^^^^^^^^^^^^^^^^^^^^^^^ + +**type**: boolean + +Exclude beginning or ending lexemes out of mode's generated markup. For example in CSS syntax a rule ends with a semicolon. +However visually it's better not to color it as the rule contents. Having ``excludeEnd: true`` forces a ```` element for the rule to close before the semicolon. + + +returnBegin +^^^^^^^^^^^ + +**type**: boolean + +Returns just found beginning lexeme back into parser. This is used when beginning of a sub-mode is a complex expression +that should not only be found within a parent mode but also parsed according to the rules of a sub-mode. + +Since the parser is effectively goes back it's quite possible to create a infinite loop here so use with caution! + + +returnEnd +^^^^^^^^^ + +**type**: boolean + +Returns just found ending lexeme back into parser. This is used for example to parse Javascript embedded into HTML. +A Javascript block ends with the HTML closing tag ```` that cannot be parsed with Javascript rules. +So it is returned back into its parent HTML mode that knows what to do with it. + +Since the parser is effectively goes back it's quite possible to create a infinite loop here so use with caution! + + +contains +^^^^^^^^ + +**type**: array + +The list of sub-modes that can be found inside the mode. For detailed explanation see :doc:`Language definition guide `. + + +starts +^^^^^^ + +**type**: identifier + +The name of the mode that will start right after the current mode ends. The new mode won't be contained within the current one. + +Currently this attribute is used to highlight Javascript and CSS contained within HTML. +Tags `` +``` +CDN provided by [cdnjs](https://cdnjs.com/libraries/jquery-scrollTo) +```html + +``` + +### Downloading Manually + +If you want the latest stable version, get the latest release from the [releases page](https://github.com/flesler/jquery.scrollTo/releases). + +## 2.0 + +Version 2.0 has been recently released. It is mostly backwards compatible, if you have any issue first check [this link](https://github.com/flesler/jquery.scrollTo/wiki/Migrating-to-2.0). +If your problem is not solved then go ahead and [report the issue](https://github.com/flesler/jquery.scrollTo/issues/new). + +## Usage + +jQuery.scrollTo's signature is designed to resemble [$().animate()](http://api.jquery.com/animate/). + +```js +$(element).scrollTo(target[,duration][,settings]); +``` + +### _element_ + +This must be a scrollable element, to scroll the whole window use `$(window)`. + +### _target_ + +This defines the position to where `element` must be scrolled. The plugin supports all these formats: + * A number with a fixed position: `250` + * A string with a fixed position with px: `"250px"` + * A string with a percentage (of container's size): `"50%"` + * A string with a relative step: `"+=50px"` + * An object with `left` and `top` containining any of the aforementioned: `{left:250, top:"50px"}` + * The string `"max"` to scroll to the end. + * A string selector that will be relative to the element to scroll: `".section:eq(2)"` + * A DOM element, probably a child of the element to scroll: `document.getElementById("top")` + * A jQuery object with a DOM element: `$("#top")` + +### _settings_ + +The `duration` parameter is a shortcut to the setting with the same name. +These are the supported settings: + * __axis__: The axes to animate: `xy` (default), `x`, `y`, `yx` + * __interrupt__: If `true` will cancel the animation if the user scrolls. Default is `false` + * __limit__: If `true` the plugin will not scroll beyond the container's size. Default is `true` + * __margin__: If `true`, subtracts the margin and border of the `target` element. Default is `false` + * __offset__: Added to the final position, can be a number or an object with `left` and `top` + * __over__: Adds a % of the `target` dimensions: `{left:0.5, top:0.5}` + * __queue__: If `true` will scroll one `axis` and then the other. Default is `false` + * __onAfter(target, settings)__: A callback triggered when the animation ends (jQuery's `complete()`) + * __onAfterFirst(target, settings)__: A callback triggered after the first axis scrolls when queueing + +You can add any setting supported by [$().animate()](http://api.jquery.com/animate/#animate-properties-options) as well: + + * __duration__: Duration of the animation, default is `0` which makes it instantaneous + * __easing__: Name of an easing equation, you must register the easing function: `swing` + * __fail()__: A callback triggered when the animation is stopped (f.e via `interrupt`) + * __step()__: A callback triggered for every animated property on every frame + * __progress()__: A callback triggered on every frame + * And more, check jQuery's [documentation](http://api.jquery.com/animate/#animate-properties-options) + +### window shorthand + +You can use `$.scrollTo(...)` as a shorthand for `$(window).scrollTo(...)`. + +### Changing the default settings + +As with most plugins, the default settings are exposed so they can be changed. +```js +$.extend($.scrollTo.defaults, { + axis: 'y', + duration: 800 +}); +``` + +### Stopping the animation + +jQuery.scrollTo ends up creating ordinary animations which can be stopped by calling [$().stop()](http://api.jquery.com/stop/) or [$().finish()](http://api.jquery.com/finish/) on the same element you called `$().scrollTo()`, including the `window`. +Remember you can pass a `fail()` callback to be called when the animation is stopped. + +## Demo + +Check the [demo](http://demos.flesler.com/jquery/scrollTo/) to see every option in action. + +## Complementary plugins + +There are two plugins, also created by me that depend on jQuery.scrollTo and aim to simplify certain use cases. + +### [jQuery.localScroll](https://github.com/flesler/jquery.localScroll) + +This plugin makes it very easy to implement anchor navigation. +If you don't want to include another plugin, you can try using something like [this minimalistic gist](https://gist.github.com/flesler/3f3e1166690108abf747). + +### [jQuery.serialScroll](https://github.com/flesler/jquery.serialScroll) + +This plugin simplifies the creation of scrolling slideshows. + +## License + +(The MIT License) + +Copyright (c) 2007-2015 Ariel Flesler + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +'Software'), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/bower.json b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/bower.json new file mode 100644 index 0000000000000..4076cdbd3c570 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/bower.json @@ -0,0 +1,28 @@ +{ + "name": "jquery.scrollTo", + "description": "Lightweight, cross-browser and highly customizable animated scrolling with jQuery", + "homepage": "https://github.com/flesler/jquery.scrollTo", + "main": [ + "./jquery.scrollTo.js" + ], + "ignore": [ + "**/.*", + "demo", + "tests", + "CHANGELOG", + "README.md", + "composer.json", + "package.json" + ], + "dependencies": { + "jquery": ">=1.8" + }, + "keywords": [ + "browser", "animated", "animation", "jquery", + "scrolling", "scroll", "links", "anchors" + ], + "author": { + "name": "Ariel Flesler", + "web": "http://flesler.blogspot.com/" + } +} diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/composer.json b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/composer.json new file mode 100644 index 0000000000000..c2255220d058a --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/composer.json @@ -0,0 +1,32 @@ +{ + "name": "flesler/jquery.scrollto", + "description": "Lightweight, cross-browser and highly customizable animated scrolling with jQuery", + "keywords": [ + "browser", "animated", "animation", "jquery", + "scrolling", "scroll", "links", "anchors" + ], + "homepage": "https://github.com/flesler/jquery.scrollTo", + "support": { + "issues": "https://github.com/flesler/jquery.scrollTo/issues", + "source": "https://github.com/flesler/jquery.scrollTo" + }, + "authors": [ + { + "name": "Ariel Flesler", + "web": "http://flesler.blogspot.com/" + } + ], + "require": { + "components/jquery": ">=1.8" + }, + "extra": { + "component": { + "scripts": [ + "jquery.scrollTo.js" + ], + "files": [ + "jquery.scrollTo.min.js" + ] + } + } +} \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.css b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.css new file mode 100644 index 0000000000000..071a450e678a0 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.css @@ -0,0 +1,150 @@ +body{ + padding:5px; + height:1600px; + font-family: Verdana, sans-serif; + background-color: #DDD; +} +ul,li,h1,h2,h3,h4,p{ + list-style:none; + padding:0; + margin:0; +} +.part{ + border:1px solid black; + background-color:white; +} + .part h3, + .part h4, + .part h4 a { + color:#933; + } +#toc{ + display:block; + padding:10px; + position:relative; + margin:15px 0; + float:left; + width:305px; +} + #toc h3{ + padding-bottom:10px; + } + #toc h3 strong{ + font-size:13px; + color:black; + } +#links{ + border:1px solid black; + width:210px; + padding:10px; + float:right; + margin-top:-30px; +} + #links h3{ + color:#933; + } + #links ul{ + padding: 8px 0 3px 20px; + } + #links li{ + list-style-type:circle; + } + #links a{ + color:#69C; + } + + #toc li, #links li{ + list-style-type:circle; + padding-left:5px; + margin-left:15px; + } + #toc a{ + color:#69C; + } +.section{ + border:1px black solid; + width:950px; + padding:10px; + margin: 5px 0; + position:relative; + clear:both; +} + .section h3{ + margin-bottom:10px; + margin-left: 8px; + } + .section h4{ + margin:10px 0 10px 8px; + } + .section li{ + float:left; + } + .pane{ + overflow:auto; + clear:left; + margin: 10px 0 0 10px; + position:relative; + width:826px; + height:322px; + } +ul.elements{ + background-color:#5B739C; +} + ul.elements li{ + width:200px; + height:100px; + font-weight:bolder; + border:1px black solid; + text-align:center; + padding:50px; + position:relative; + background-color:#DDD; + } + ul.elements li a{ + bottom:20px; + color:#933; + font-size:12px; + left:125px; + position:absolute; + } + ul.elements li p{ + color:#666; + } + #pane-settings ul.elements li{ + margin:5px; + } + #pane-settings{ + margin-bottom:10px; + } +ul.links{ + height:20px; + overflow:hidden; + padding-left: 5px; +} + ul.links a{ + color:#69C; + margin:0 0 0 5px; + } +.clear{ + clear:left; +} +h3 span{ + position:absolute; +} +.message{ + background:#EEE; + border:1px solid #999; + color:#333; + font-size:12px; + font-weight:normal; + padding:1px; + margin-top:2px; +} + +h1{ + color:#5B739C; +} +h1 strong{ + font-size:13px; + color:#777; +} \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.old.css b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.old.css new file mode 100644 index 0000000000000..a97ba38f2d645 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/css/style.old.css @@ -0,0 +1,69 @@ +body{ + background-color: #DDD; +} +.container li,div.pane{ + height:200px; + font-weight:bolder; + position:relative; +} +ul{ + list-style:none; + padding:0; + margin:0; +} +.container a{ + color:black; + position:absolute; + bottom:10px; +} +p{ + margin:0; +} +.container{ + border:1px black solid; + margin:30px; + overflow:auto; + position:relative; + width:80%; + height:300px; +} + .container ul{ + padding:0; + } +#x{ + height:217px; +} + #x li,#xy li{ + width:300px; + float:left; + } + +h1{ + color:#5B739C; +} +h1 strong{ + font-size:13px; + color:#777; +} + +#links{ + border:1px solid black; + width:210px; + padding:10px; + float:right; + margin-top:-55px; + background-color:white; +} + #links h3{ + color:#933; + margin:5px; + } + #links ul{ + padding: 8px 0 3px 20px; + } + #links li{ + list-style-type:circle; + } + #links a{ + color:#69C; + } \ No newline at end of file diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.html new file mode 100644 index 0000000000000..fe9fd633e1da0 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.html @@ -0,0 +1,252 @@ + + + + + jQuery.scrollTo + + + + + + + + + +

jQuery.scrollTo by Ariel Flesler

+ +
+

Table of contents (try these)

+ +
+ + + + + + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.old.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.old.html new file mode 100644 index 0000000000000..280451d40894a --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/demo/index.old.html @@ -0,0 +1,128 @@ + + + + + jQuery.ScrollTo + + + + + + + + + +

jQuery.ScrollTo by Ariel Flesler

+ +

+ + + + + + +
+
+
+
+
+ + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.js b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.js new file mode 100644 index 0000000000000..7ba17766b7021 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.js @@ -0,0 +1,210 @@ +/*! + * jQuery.scrollTo + * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com + * Licensed under MIT + * http://flesler.blogspot.com/2007/10/jqueryscrollto.html + * @projectDescription Lightweight, cross-browser and highly customizable animated scrolling with jQuery + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(factory) { + 'use strict'; + if (typeof define === 'function' && define.amd) { + // AMD + define(['jquery'], factory); + } else if (typeof module !== 'undefined' && module.exports) { + // CommonJS + module.exports = factory(require('jquery')); + } else { + // Global + factory(jQuery); + } +})(function($) { + 'use strict'; + + var $scrollTo = $.scrollTo = function(target, duration, settings) { + return $(window).scrollTo(target, duration, settings); + }; + + $scrollTo.defaults = { + axis:'xy', + duration: 0, + limit:true + }; + + function isWin(elem) { + return !elem.nodeName || + $.inArray(elem.nodeName.toLowerCase(), ['iframe','#document','html','body']) !== -1; + } + + $.fn.scrollTo = function(target, duration, settings) { + if (typeof duration === 'object') { + settings = duration; + duration = 0; + } + if (typeof settings === 'function') { + settings = { onAfter:settings }; + } + if (target === 'max') { + target = 9e9; + } + + settings = $.extend({}, $scrollTo.defaults, settings); + // Speed is still recognized for backwards compatibility + duration = duration || settings.duration; + // Make sure the settings are given right + var queue = settings.queue && settings.axis.length > 1; + if (queue) { + // Let's keep the overall duration + duration /= 2; + } + settings.offset = both(settings.offset); + settings.over = both(settings.over); + + return this.each(function() { + // Null target yields nothing, just like jQuery does + if (target === null) return; + + var win = isWin(this), + elem = win ? this.contentWindow || window : this, + $elem = $(elem), + targ = target, + attr = {}, + toff; + + switch (typeof targ) { + // A number will pass the regex + case 'number': + case 'string': + if (/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)) { + targ = both(targ); + // We are done + break; + } + // Relative/Absolute selector + targ = win ? $(targ) : $(targ, elem); + /* falls through */ + case 'object': + if (targ.length === 0) return; + // DOMElement / jQuery + if (targ.is || targ.style) { + // Get the real position of the target + toff = (targ = $(targ)).offset(); + } + } + + var offset = $.isFunction(settings.offset) && settings.offset(elem, targ) || settings.offset; + + $.each(settings.axis.split(''), function(i, axis) { + var Pos = axis === 'x' ? 'Left' : 'Top', + pos = Pos.toLowerCase(), + key = 'scroll' + Pos, + prev = $elem[key](), + max = $scrollTo.max(elem, axis); + + if (toff) {// jQuery / DOMElement + attr[key] = toff[pos] + (win ? 0 : prev - $elem.offset()[pos]); + + // If it's a dom element, reduce the margin + if (settings.margin) { + attr[key] -= parseInt(targ.css('margin'+Pos), 10) || 0; + attr[key] -= parseInt(targ.css('border'+Pos+'Width'), 10) || 0; + } + + attr[key] += offset[pos] || 0; + + if (settings.over[pos]) { + // Scroll to a fraction of its width/height + attr[key] += targ[axis === 'x'?'width':'height']() * settings.over[pos]; + } + } else { + var val = targ[pos]; + // Handle percentage values + attr[key] = val.slice && val.slice(-1) === '%' ? + parseFloat(val) / 100 * max + : val; + } + + // Number or 'number' + if (settings.limit && /^\d+$/.test(attr[key])) { + // Check the limits + attr[key] = attr[key] <= 0 ? 0 : Math.min(attr[key], max); + } + + // Don't waste time animating, if there's no need. + if (!i && settings.axis.length > 1) { + if (prev === attr[key]) { + // No animation needed + attr = {}; + } else if (queue) { + // Intermediate animation + animate(settings.onAfterFirst); + // Don't animate this axis again in the next iteration. + attr = {}; + } + } + }); + + animate(settings.onAfter); + + function animate(callback) { + var opts = $.extend({}, settings, { + // The queue setting conflicts with animate() + // Force it to always be true + queue: true, + duration: duration, + complete: callback && function() { + callback.call(elem, targ, settings); + } + }); + $elem.animate(attr, opts); + } + }); + }; + + // Max scrolling position, works on quirks mode + // It only fails (not too badly) on IE, quirks mode. + $scrollTo.max = function(elem, axis) { + var Dim = axis === 'x' ? 'Width' : 'Height', + scroll = 'scroll'+Dim; + + if (!isWin(elem)) + return elem[scroll] - $(elem)[Dim.toLowerCase()](); + + var size = 'client' + Dim, + doc = elem.ownerDocument || elem.document, + html = doc.documentElement, + body = doc.body; + + return Math.max(html[scroll], body[scroll]) - Math.min(html[size], body[size]); + }; + + function both(val) { + return $.isFunction(val) || $.isPlainObject(val) ? val : { top:val, left:val }; + } + + // Add special hooks so that window scroll properties can be animated + $.Tween.propHooks.scrollLeft = + $.Tween.propHooks.scrollTop = { + get: function(t) { + return $(t.elem)[t.prop](); + }, + set: function(t) { + var curr = this.get(t); + // If interrupt is true and user scrolled, stop animating + if (t.options.interrupt && t._last && t._last !== curr) { + return $(t.elem).stop(); + } + var next = Math.round(t.now); + // Don't waste CPU + // Browsers don't render floating point scroll + if (curr !== next) { + $(t.elem)[t.prop](next); + t._last = this.get(t); + } + } + }; + + // AMD requirement + return $scrollTo; +}); diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.min.js b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.min.js new file mode 100644 index 0000000000000..65a020d92ad28 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/jquery.scrollTo.min.js @@ -0,0 +1,7 @@ +/** + * Copyright (c) 2007-2015 Ariel Flesler - afleslergmailcom | http://flesler.blogspot.com + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=f[g]?0:Math.min(f[g],n));!a&&1=2.1.2 <3.0.0", + "type": "range" + }, + "/brodocs" + ] + ], + "_from": "jquery.scrollto@>=2.1.2 <3.0.0", + "_id": "jquery.scrollto@2.1.2", + "_inCache": true, + "_location": "/jquery.scrollto", + "_nodeVersion": "0.12.0", + "_npmUser": { + "name": "flesler", + "email": "aflesler@gmail.com" + }, + "_npmVersion": "2.5.1", + "_phantomChildren": {}, + "_requested": { + "raw": "jquery.scrollto@^2.1.2", + "scope": null, + "escapedName": "jquery.scrollto", + "name": "jquery.scrollto", + "rawSpec": "^2.1.2", + "spec": ">=2.1.2 <3.0.0", + "type": "range" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/jquery.scrollto/-/jquery.scrollto-2.1.2.tgz", + "_shasum": "e7580d9c7ac46ef5bb25319483f6f45713fd7c6c", + "_shrinkwrap": null, + "_spec": "jquery.scrollto@^2.1.2", + "_where": "/brodocs", + "author": { + "name": "Ariel Flesler", + "url": "http://flesler.blogspot.com/" + }, + "bugs": { + "url": "https://github.com/flesler/jquery.scrollTo/issues" + }, + "demo": "http://demos.flesler.com/jquery/scrollTo/", + "dependencies": { + "jquery": ">=1.8" + }, + "description": "Lightweight, cross-browser and highly customizable animated scrolling with jQuery", + "devDependencies": {}, + "directories": {}, + "dist": { + "shasum": "e7580d9c7ac46ef5bb25319483f6f45713fd7c6c", + "tarball": "https://registry.npmjs.org/jquery.scrollto/-/jquery.scrollto-2.1.2.tgz" + }, + "docs": "https://github.com/flesler/jquery.scrollTo/", + "download": "https://github.com/flesler/jquery.scrollTo/releases", + "gitHead": "d33ae4515be21a76bb7907c94dd8a0ca0de7e49b", + "homepage": "https://github.com/flesler/jquery.scrollTo/", + "ignore": [ + "**/.*", + "demo", + "tests", + "CHANGELOG", + "README.md", + "composer.json", + "bower.json" + ], + "keywords": [ + "browser", + "animated", + "animation", + "scrolling", + "scroll", + "links", + "anchors", + "jquery", + "jquery-plugin", + "ecosystem:jquery" + ], + "license": "MIT", + "main": "jquery.scrollTo.js", + "maintainers": [ + { + "name": "flesler", + "email": "aflesler@gmail.com" + } + ], + "name": "jquery.scrollto", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git://github.com/flesler/jquery.scrollTo.git" + }, + "scripts": {}, + "version": "2.1.2" +} diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-compat.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-compat.html new file mode 100644 index 0000000000000..b0f761b62182e --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-compat.html @@ -0,0 +1,21 @@ + + + + + jQuery.scrollTo - Test Element MaxY - Compat Mode + + + + + +

jQuery.scrollTo - Test Element MaxY - Compat Mode

+ +
+
+   +
+
+ + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-quirks.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-quirks.html new file mode 100644 index 0000000000000..1bffc748c38c2 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/ElemMaxY-quirks.html @@ -0,0 +1,20 @@ + + + + jQuery.scrollTo - Test Element MaxY - Quirks Mode + + + + + +

jQuery.scrollTo - Test Element MaxY - Quirks Mode

+ +
+
+   +
+
+ + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-compat.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-compat.html new file mode 100644 index 0000000000000..ad745feb91b74 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-compat.html @@ -0,0 +1,19 @@ + + + + + jQuery.scrollTo - Test Window MaxY - Compat Mode + + + + + +

jQuery.scrollTo - Test Window MaxY - Compat Mode

+ +
+   +
+ + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-quirks.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-quirks.html new file mode 100644 index 0000000000000..7bceace68d494 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-quirks.html @@ -0,0 +1,18 @@ + + + + jQuery.scrollTo - Test Window MaxY - Quirks Mode + + + + + +

jQuery.scrollTo - Test Window MaxY - Quirks Mode

+ +
+   +
+ + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-compat.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-compat.html new file mode 100644 index 0000000000000..b4a2ee1dfa90b --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-compat.html @@ -0,0 +1,20 @@ + + + + + jQuery.scrollTo - Test Window MaxY to Iframe - Compat Mode + + + + + +

jQuery.scrollTo - Test Window MaxY to Iframe - Compat Mode

+ + + + + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-quirks.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-quirks.html new file mode 100644 index 0000000000000..edd638a9a4757 --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-to-iframe-quirks.html @@ -0,0 +1,19 @@ + + + + jQuery.scrollTo - Test Window MaxY to Iframe - Quirks Mode + + + + + +

jQuery.scrollTo - Test Window MaxY to Iframe - Quirks Mode

+ + + + + diff --git a/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-with-iframe-compat.html b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-with-iframe-compat.html new file mode 100644 index 0000000000000..aedf1e99c75ea --- /dev/null +++ b/docs/resources-reference/v1.7/node_modules/jquery.scrollto/tests/WinMaxY-with-iframe-compat.html @@ -0,0 +1,11 @@ + + + + + jQuery.scrollTo - Test Window MaxY with Iframe - Compat Mode + + +

jQuery.scrollTo - Test Window MaxY with Iframe - Compat Mode

+ +