Merge remote-tracking branch 'origin/master' into extra_user-data

This commit is contained in:
Rodrigo Menezes 2017-10-30 20:44:00 -07:00
commit 58faa71d89
311 changed files with 6842 additions and 3631 deletions

2
.gitignore vendored
View File

@ -68,3 +68,5 @@ bazel-genfiles
bazel-kops
bazel-out
bazel-testlogs
# Ignore default apiserver config
apiserver.local.config

View File

@ -76,7 +76,7 @@ go_library(
"//pkg/kubeconfig:go_default_library",
"//pkg/pretty:go_default_library",
"//pkg/resources:go_default_library",
"//pkg/resources/tracker:go_default_library",
"//pkg/resources/ops:go_default_library",
"//pkg/util/templater:go_default_library",
"//pkg/validation:go_default_library",
"//upup/pkg/fi:go_default_library",

View File

@ -444,6 +444,28 @@ func RunCreateCluster(f *util.Factory, out io.Writer, c *CreateClusterOptions) e
}
zoneToSubnetMap[zoneName] = subnet
}
} else if api.CloudProviderID(cluster.Spec.CloudProvider) == api.CloudProviderDO {
if len(c.Zones) > 1 {
return fmt.Errorf("digitalocean cloud provider currently only supports 1 region, expect multi-region support when digitalocean support is in beta")
}
// For DO we just pass in the region for --zones
region := c.Zones[0]
subnet := model.FindSubnet(cluster, region)
// for DO, subnets are just regions
subnetName := region
if subnet == nil {
subnet = &api.ClusterSubnetSpec{
Name: subnetName,
// region and zone are the same for DO
Region: region,
Zone: region,
}
cluster.Spec.Subnets = append(cluster.Spec.Subnets, *subnet)
}
zoneToSubnetMap[region] = subnet
} else {
for _, zoneName := range allZones.List() {
// We create default subnets named the same as the zones
@ -974,7 +996,7 @@ func RunCreateCluster(f *util.Factory, out io.Writer, c *CreateClusterOptions) e
return err
}
err = registry.WriteConfigDeprecated(configBase.Join(registry.PathClusterCompleted), fullCluster)
err = registry.WriteConfigDeprecated(cluster, configBase.Join(registry.PathClusterCompleted), fullCluster)
if err != nil {
return fmt.Errorf("error writing completed cluster spec: %v", err)
}

View File

@ -26,7 +26,7 @@ import (
api "k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/kubeconfig"
"k8s.io/kops/pkg/resources"
"k8s.io/kops/pkg/resources/tracker"
resourceops "k8s.io/kops/pkg/resources/ops"
"k8s.io/kops/upup/pkg/fi"
"k8s.io/kops/upup/pkg/fi/cloudup"
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
@ -131,16 +131,12 @@ func RunDeleteCluster(f *util.Factory, out io.Writer, options *DeleteClusterOpti
}
}
d := &resources.ClusterResources{}
d.ClusterName = clusterName
d.Cloud = cloud
allResources, err := d.ListResources()
allResources, err := resourceops.ListResources(cloud, clusterName, options.Region)
if err != nil {
return err
}
clusterResources := make(map[string]*tracker.Resource)
clusterResources := make(map[string]*resources.Resource)
for k, resource := range allResources {
if resource.Shared {
continue
@ -154,16 +150,16 @@ func RunDeleteCluster(f *util.Factory, out io.Writer, options *DeleteClusterOpti
wouldDeleteCloudResources = true
t := &tables.Table{}
t.AddColumn("TYPE", func(r *tracker.Resource) string {
t.AddColumn("TYPE", func(r *resources.Resource) string {
return r.Type
})
t.AddColumn("ID", func(r *tracker.Resource) string {
t.AddColumn("ID", func(r *resources.Resource) string {
return r.ID
})
t.AddColumn("NAME", func(r *tracker.Resource) string {
t.AddColumn("NAME", func(r *resources.Resource) string {
return r.Name
})
var l []*tracker.Resource
var l []*resources.Resource
for _, v := range clusterResources {
l = append(l, v)
}
@ -180,7 +176,7 @@ func RunDeleteCluster(f *util.Factory, out io.Writer, options *DeleteClusterOpti
fmt.Fprintf(out, "\n")
err = d.DeleteResources(clusterResources)
err = resourceops.DeleteResources(cloud, clusterResources)
if err != nil {
return err
}

View File

@ -250,7 +250,7 @@ func RunEditCluster(f *util.Factory, cmd *cobra.Command, args []string, out io.W
return preservedFile(err, file, out)
}
err = registry.WriteConfigDeprecated(configBase.Join(registry.PathClusterCompleted), fullCluster)
err = registry.WriteConfigDeprecated(newCluster, configBase.Join(registry.PathClusterCompleted), fullCluster)
if err != nil {
return preservedFile(fmt.Errorf("error writing completed cluster spec: %v", err), file, out)
}

View File

@ -135,13 +135,12 @@ func TestSharedVPC(t *testing.T) {
// TestPhaseNetwork tests the output of tf for the network phase
func TestPhaseNetwork(t *testing.T) {
t.Skip("unable to pass test w/o removing elb stuff")
runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.PhaseNetwork)
}
// TestPhaseIAM tests the output of tf for the iam phase
func TestPhaseIAM(t *testing.T) {
runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.PhaseIAM)
runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.PhaseSecurity)
}
// TestPhaseCluster tests the output of tf for the cluster phase
@ -151,20 +150,6 @@ func TestPhaseCluster(t *testing.T) {
runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.PhaseCluster)
}
// TestPhaseCluster tests the output of tf for the security group phase
func TestPhaseSecurityGroup(t *testing.T) {
t.Skip("unable to test until phase is created")
// TODO fix tf for phase, and allow override on validation
// runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.SecurityGroups)
}
// TestPhaseCluster tests the output of tf for the loadbalancer phase
func TestPhaseLoadBalancers(t *testing.T) {
t.Skip("unable to test until phase is created")
// TODO
// runTestPhase(t, "privateweave.example.com", "lifecycle_phases", "v1alpha2", true, 1, cloudup.LoadBalancers)
}
func runTest(t *testing.T, h *testutils.IntegrationTestHarness, clusterName string, srcDir string, version string, private bool, zones int, expectedFilenames []string, tfFileName string, phase *cloudup.Phase) {
var stdout bytes.Buffer
@ -264,8 +249,8 @@ func runTest(t *testing.T, h *testutils.IntegrationTestHarness, clusterName stri
}
}
// Compare data files
{
// Compare data files if they are provided
if len(expectedFilenames) > 0 {
files, err := ioutil.ReadDir(path.Join(h.TempDir, "out", "data"))
if err != nil {
t.Fatalf("failed to read data dir: %v", err)
@ -333,7 +318,7 @@ func runTestPhase(t *testing.T, clusterName string, srcDir string, version strin
expectedFilenames := []string{}
if phase == cloudup.PhaseIAM {
if phase == cloudup.PhaseSecurity {
expectedFilenames = []string{
"aws_iam_role_masters." + clusterName + "_policy",
"aws_iam_role_nodes." + clusterName + "_policy",

View File

@ -17,15 +17,16 @@ limitations under the License.
package main
import (
"context"
"encoding/json"
"fmt"
"io"
"github.com/golang/glog"
"github.com/spf13/cobra"
"k8s.io/kops/cmd/kops/util"
"k8s.io/kops/pkg/apis/kops"
"k8s.io/kops/pkg/resources"
resourceops "k8s.io/kops/pkg/resources/ops"
"k8s.io/kops/upup/pkg/fi/cloudup"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
@ -107,38 +108,19 @@ func RunToolboxDump(f *util.Factory, out io.Writer, options *ToolboxDumpOptions)
return err
}
// Todo lets make this smart enough to detect the cloud and switch on the ClusterResources interface
d := &resources.ClusterResources{}
d.ClusterName = options.ClusterName
d.Cloud = cloud
resources, err := d.ListResources()
region := "" // Use default
resourceMap, err := resourceops.ListResources(cloud, options.ClusterName, region)
if err != nil {
return err
}
dump, err := resources.BuildDump(context.TODO(), cloud, resourceMap)
if err != nil {
return err
}
data := make(map[string]interface{})
dumpedResources := []interface{}{}
for k, r := range resources {
if r.Dumper == nil {
glog.V(8).Infof("skipping dump of %q (no Dumper)", k)
continue
}
o, err := r.Dumper(r)
if err != nil {
return fmt.Errorf("error dumping %q: %v", k, err)
}
if o != nil {
dumpedResources = append(dumpedResources, o)
}
}
data["resources"] = dumpedResources
switch options.Output {
case OutputYaml:
b, err := kops.ToRawYaml(data)
b, err := kops.ToRawYaml(dump)
if err != nil {
return fmt.Errorf("error marshaling yaml: %v", err)
}
@ -149,7 +131,7 @@ func RunToolboxDump(f *util.Factory, out io.Writer, options *ToolboxDumpOptions)
return nil
case OutputJSON:
b, err := json.MarshalIndent(data, "", " ")
b, err := json.MarshalIndent(dump, "", " ")
if err != nil {
return fmt.Errorf("error marshaling json: %v", err)
}

View File

@ -17,19 +17,21 @@ limitations under the License.
package main
import (
"bytes"
"fmt"
"io"
"io/ioutil"
"os"
"path/filepath"
"k8s.io/kops/cmd/kops/util"
"k8s.io/kops/pkg/util/templater"
"k8s.io/kops/upup/pkg/fi/utils"
"github.com/ghodss/yaml"
"github.com/spf13/cobra"
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
"k8s.io/kops/cmd/kops/util"
"k8s.io/kops/pkg/util/templater"
"k8s.io/kops/upup/pkg/fi/utils"
)
var (
@ -54,7 +56,9 @@ var (
type toolboxTemplateOption struct {
clusterName string
configPath []string
configValue string
failOnMissing bool
formatYAML bool
outputPath string
snippetsPath []string
templatePath []string
@ -85,7 +89,9 @@ func NewCmdToolboxTemplate(f *util.Factory, out io.Writer) *cobra.Command {
cmd.Flags().StringSliceVar(&options.templatePath, "template", options.templatePath, "Path to template file or directory of templates to render")
cmd.Flags().StringSliceVar(&options.snippetsPath, "snippets", options.snippetsPath, "Path to directory containing snippets used for templating")
cmd.Flags().StringVar(&options.outputPath, "output", options.outputPath, "Path to output file, otherwise defaults to stdout")
cmd.Flags().StringVar(&options.configValue, "config-value", "", "Show the value of a specific configuration value")
cmd.Flags().BoolVar(&options.failOnMissing, "fail-on-missing", true, "Fail on referencing unset variables in templates")
cmd.Flags().BoolVar(&options.formatYAML, "format-yaml", false, "Attempt to format the generated yaml content before output")
return cmd
}
@ -93,30 +99,24 @@ func NewCmdToolboxTemplate(f *util.Factory, out io.Writer) *cobra.Command {
// runToolBoxTemplate is the action for the command
func runToolBoxTemplate(f *util.Factory, out io.Writer, options *toolboxTemplateOption) error {
// @step: read in the configuration if any
context := make(map[string]interface{}, 0)
for _, x := range options.configPath {
list, err := expandFiles(utils.ExpandPath(x))
if err != nil {
return err
}
for _, j := range list {
content, err := ioutil.ReadFile(j)
if err != nil {
return fmt.Errorf("unable to configuration file: %s, error: %s", j, err)
}
ctx := make(map[string]interface{}, 0)
if err := utils.YamlUnmarshal(content, &ctx); err != nil {
return fmt.Errorf("unable decode the configuration file: %s, error: %v", j, err)
}
// @step: merge the maps together
for k, v := range ctx {
context[k] = v
}
}
context, err := newTemplateContext(options.configPath)
if err != nil {
return err
}
context["clusterName"] = options.clusterName
// @check if we are just rendering the config value
if options.configValue != "" {
v, found := context[options.configValue]
switch found {
case true:
fmt.Fprintf(out, "%s\n", v)
default:
fmt.Fprintf(out, "null\n")
}
return nil
}
// @step: expand the list of templates into a list of files to render
var templates []string
for _, x := range options.templatePath {
@ -143,15 +143,7 @@ func runToolBoxTemplate(f *util.Factory, out io.Writer, options *toolboxTemplate
}
}
// @step: get the output io.Writer
writer := out
if options.outputPath != "" {
w, err := os.OpenFile(utils.ExpandPath(options.outputPath), os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0660)
if err != nil {
return fmt.Errorf("unable to open file: %s, error: %v", options.outputPath, err)
}
writer = w
}
b := new(bytes.Buffer)
// @step: render each of the template and write to location
r := templater.NewTemplater()
@ -166,18 +158,83 @@ func runToolBoxTemplate(f *util.Factory, out io.Writer, options *toolboxTemplate
if err != nil {
return fmt.Errorf("unable to render template: %s, error: %s", x, err)
}
// @check if we have a zero length string and if so, forgo it
if len(rendered) <= 0 {
continue
}
io.WriteString(writer, rendered)
// @check if we need to format the yaml
if options.formatYAML {
var data interface{}
if err := utils.YamlUnmarshal([]byte(rendered), &data); err != nil {
return fmt.Errorf("unable to unmarshall content from template: %s, error: %s", x, err)
}
// @TODO: i'm not sure how this could happen but best to heck none the less
formatted, err := yaml.Marshal(&data)
if err != nil {
return fmt.Errorf("unable to marhshal formated content to yaml: %s", err)
}
rendered = string(formatted)
}
if _, err := b.WriteString(rendered); err != nil {
return fmt.Errorf("unable to write template: %s, error: %s", x, err)
}
// @check if we should need to add document separator
if i < size {
io.WriteString(writer, "---\n")
if _, err := b.WriteString("---\n"); err != nil {
return fmt.Errorf("unable to write to template: %s, error: %s", x, err)
}
}
}
iowriter := out
// @check if we are writing to a file rather than stdout
if options.outputPath != "" {
w, err := os.OpenFile(utils.ExpandPath(options.outputPath), os.O_RDWR|os.O_TRUNC|os.O_CREATE, 0660)
if err != nil {
return fmt.Errorf("unable to open file: %s, error: %v", options.outputPath, err)
}
defer w.Close()
iowriter = w
}
if _, err := iowriter.Write(b.Bytes()); err != nil {
return fmt.Errorf("unable to write template: %s", err)
}
return nil
}
// newTemplateContext is responsible for loadding the --values and build a context for the template
func newTemplateContext(files []string) (map[string]interface{}, error) {
context := make(map[string]interface{}, 0)
for _, x := range files {
list, err := expandFiles(utils.ExpandPath(x))
if err != nil {
return nil, err
}
for _, j := range list {
content, err := ioutil.ReadFile(j)
if err != nil {
return nil, fmt.Errorf("unable to configuration file: %s, error: %s", j, err)
}
ctx := make(map[string]interface{}, 0)
if err := utils.YamlUnmarshal(content, &ctx); err != nil {
return nil, fmt.Errorf("unable decode the configuration file: %s, error: %v", j, err)
}
for k, v := range ctx {
context[k] = v
}
}
}
return context, nil
}
// expandFiles is responsible for resolving any references to directories
func expandFiles(path string) ([]string, error) {
// @check if the the path is a directory, if not we can return straight away
@ -185,7 +242,7 @@ func expandFiles(path string) ([]string, error) {
if err != nil {
return nil, err
}
// @check if no a directory and return as is
// @check if not a directory and return as is
if !stat.IsDir() {
return []string{path}, nil
}

View File

@ -108,7 +108,7 @@ func NewCmdUpdateCluster(f *util.Factory, out io.Writer) *cobra.Command {
cmd.Flags().StringVar(&options.SSHPublicKey, "ssh-public-key", options.SSHPublicKey, "SSH public key to use (deprecated: use kops create secret instead)")
cmd.Flags().StringVar(&options.OutDir, "out", options.OutDir, "Path to write any local output")
cmd.Flags().BoolVar(&options.CreateKubecfg, "create-kube-config", options.CreateKubecfg, "Will control automatically creating the kube config file on your local filesystem")
cmd.Flags().StringVar(&options.Phase, "phase", options.Phase, "Subset of tasks to run: "+strings.Join(cloudup.Phases.List(), ","))
cmd.Flags().StringVar(&options.Phase, "phase", options.Phase, "Subset of tasks to run: "+strings.Join(cloudup.Phases.List(), ", "))
return cmd
}
@ -179,10 +179,10 @@ func RunUpdateCluster(f *util.Factory, clusterName string, out io.Writer, c *Upd
switch strings.ToLower(c.Phase) {
case string(cloudup.PhaseStageAssets):
phase = cloudup.PhaseStageAssets
case string(cloudup.PhaseIAM):
phase = cloudup.PhaseIAM
case string(cloudup.PhaseNetwork):
phase = cloudup.PhaseNetwork
case string(cloudup.PhaseSecurity), "iam": // keeping IAM for backwards compatibility
phase = cloudup.PhaseSecurity
case string(cloudup.PhaseCluster):
phase = cloudup.PhaseCluster
default:

View File

@ -5,6 +5,7 @@ go_library(
srcs = ["factory.go"],
visibility = ["//visibility:public"],
deps = [
"//pkg/acls/gce:go_default_library",
"//pkg/client/clientset_generated/clientset:go_default_library",
"//pkg/client/simple:go_default_library",
"//pkg/client/simple/api:go_default_library",

View File

@ -18,17 +18,18 @@ package util
import (
"fmt"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/kops/pkg/client/simple"
"k8s.io/kops/pkg/client/simple/vfsclientset"
"k8s.io/kops/util/pkg/vfs"
"github.com/golang/glog"
"k8s.io/client-go/rest"
kopsclient "k8s.io/kops/pkg/client/clientset_generated/clientset"
"k8s.io/kops/pkg/client/simple/api"
"net/url"
"strings"
"github.com/golang/glog"
"k8s.io/apimachinery/pkg/util/validation/field"
"k8s.io/client-go/rest"
gceacls "k8s.io/kops/pkg/acls/gce"
kopsclient "k8s.io/kops/pkg/client/clientset_generated/clientset"
"k8s.io/kops/pkg/client/simple"
"k8s.io/kops/pkg/client/simple/api"
"k8s.io/kops/pkg/client/simple/vfsclientset"
"k8s.io/kops/util/pkg/vfs"
)
type FactoryOptions struct {
@ -41,6 +42,8 @@ type Factory struct {
}
func NewFactory(options *FactoryOptions) *Factory {
gceacls.Register()
return &Factory{
options: options,
}

View File

@ -13,8 +13,11 @@ go get -u github.com/kubernetes-incubator/apiserver-builder/cmd/...
# Install the reference docs commands (apiserver-builder commands invoke these)
go get -u github.com/kubernetes-incubator/reference-docs/gen-apidocs/...
go get -u k8s.io/code-generator/...
# Install the code generation commands (apiserver-builder commands invoke these)
go install k8s.io/code-generator/cmd/openapi-gen
go install k8s.io/code-generator/cmd/deepcopy-gen
go install k8s.io/code-generator/cmd/informer-gen
```
## Update the `pkg/openapi/openapi_generated.go`

View File

@ -153,7 +153,7 @@ function generateNestedNav(parent, nest) {
function generateNavJson(data) {
var navJson = JSON.stringify(data);
navScript = `(function(){navData = ${navJson}})();`;
navScript = `(function(){navData = ${navJson};})();`;
fs.writeFile('./navData.js', navScript, function(err) {
if (err) {
return console.log(err);

View File

@ -1,5 +0,0 @@
# <strong>Definitions</strong>
------------

View File

@ -1,22 +0,0 @@
## AccessSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | AccessSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
dns <br /> *[DNSAccessSpec](#dnsaccessspec-v1alpha2-kops)* |
loadBalancer <br /> *[LoadBalancerAccessSpec](#loadbalanceraccessspec-v1alpha2-kops)* |

View File

@ -1,20 +0,0 @@
## AlwaysAllowAuthorizationSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | AlwaysAllowAuthorizationSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#authorizationspec-v1alpha2-kops">AuthorizationSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,26 +0,0 @@
## APIGroup v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | APIGroup
APIGroup contains the name, the supported versions, and the preferred version of a group.
<aside class="notice">
Appears In:
<ul>
<li><a href="#apigrouplist-v1-meta">APIGroupList meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
kind <br /> *string* | 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
name <br /> *string* | name is the name of the group.
preferredVersion <br /> *[GroupVersionForDiscovery](#groupversionfordiscovery-v1-meta)* | preferredVersion is the version preferred by the API server, which probably is the storage version.
serverAddressByClientCIDRs <br /> *[ServerAddressByClientCIDR](#serveraddressbyclientcidr-v1-meta) array* | a map of client CIDR to server address that is serving this group. This is to help clients reach servers in the most network-efficient way possible. Clients can use the appropriate server address as per the CIDR that they match. In case of multiple matches, clients should use the longest matching CIDR. The server returns only those CIDRs that it thinks that the client can match. For example: the master will return an internal IP CIDR only, if the client reaches the server using an internal IP. Server looks at X-Forwarded-For header or X-Real-Ip header or request.RemoteAddr (in that order) to get the client IP.
versions <br /> *[GroupVersionForDiscovery](#groupversionfordiscovery-v1-meta) array* | versions are the versions supported in this group.

View File

@ -1,29 +0,0 @@
## APIResource v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | APIResource
APIResource specifies the name of a resource and whether it is namespaced.
<aside class="notice">
Appears In:
<ul>
<li><a href="#apiresourcelist-v1-meta">APIResourceList meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
categories <br /> *string array* | categories is a list of the grouped resources this resource belongs to (e.g. 'all')
group <br /> *string* | group is the preferred group of the resource. Empty implies the group of the containing resource list. For subresources, this may have a different value, for example: Scale".
kind <br /> *string* | kind is the kind for the resource (e.g. 'Foo' is the kind for a resource 'foo')
name <br /> *string* | name is the plural name of the resource.
namespaced <br /> *boolean* | namespaced indicates if a resource is namespaced or not.
shortNames <br /> *string array* | shortNames is a list of suggested short names of the resource.
singularName <br /> *string* | 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.
verbs <br /> *string array* | verbs is a list of supported kube verbs (this includes get, list, watch, create, update, patch, delete, deletecollection, and proxy)
version <br /> *string* | version is the preferred version of the resource. Empty implies the version of the containing resource list For subresources, this may have a different value, for example: v1 (while inside a v1beta1 version of the core resource's group)".

View File

@ -1,22 +0,0 @@
## Assets v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | Assets
Assets defined the privately hosted assets
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
containerRegistry <br /> *string* | ContainerRegistry is a url for to a docker registry
fileRepository <br /> *string* | FileRepository is the url for a private file serving repository

View File

@ -1,21 +0,0 @@
## AuthenticationSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | AuthenticationSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
kopeio <br /> *[KopeioAuthenticationSpec](#kopeioauthenticationspec-v1alpha2-kops)* |

View File

@ -1,22 +0,0 @@
## AuthorizationSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | AuthorizationSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
alwaysAllow <br /> *[AlwaysAllowAuthorizationSpec](#alwaysallowauthorizationspec-v1alpha2-kops)* |
rbac <br /> *[RBACAuthorizationSpec](#rbacauthorizationspec-v1alpha2-kops)* |

View File

@ -1,22 +0,0 @@
## BastionSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | BastionSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#topologyspec-v1alpha2-kops">TopologySpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
bastionPublicName <br /> *string* |
idleTimeoutSeconds <br /> *integer* | IdleTimeoutSeconds is the bastion's Loadbalancer idle timeout

View File

@ -1,21 +0,0 @@
## CalicoNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | CalicoNetworkingSpec
CalicoNetworkingSpec declares that we want Calico networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
crossSubnet <br /> *boolean* |

View File

@ -1,26 +0,0 @@
## CanalNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | CanalNetworkingSpec
CanalNetworkingSpec declares that we want Canal networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
chainInsertMode <br /> *string* | ChainInsertMode controls whether Felix inserts rules to the top of iptables chains, or appends to the bottom. Leaving the default option is safest to prevent accidentally breaking connectivity. Default: 'insert' (other options: 'append')
defaultEndpointToHostAction <br /> *string* | DefaultEndpointToHostAction allows users to configure the default behaviour for traffic between pod to host after calico rules have been processed. Default: ACCEPT (other options: DROP, RETURN)
prometheusGoMetricsEnabled <br /> *boolean* | PrometheusGoMetricsEnabled enables Prometheus Go runtime metrics collection
prometheusMetricsEnabled <br /> *boolean* | PrometheusMetricsEnabled can be set to enable the experimental Prometheus metrics server (default: false)
prometheusMetricsPort <br /> *integer* | PrometheusMetricsPort is the TCP port that the experimental Prometheus metrics server should bind to (default: 9091)
prometheusProcessMetricsEnabled <br /> *boolean* | PrometheusProcessMetricsEnabled enables Prometheus process metrics collection

View File

@ -1,20 +0,0 @@
## ClassicNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | ClassicNetworkingSpec
ClassicNetworkingSpec is the specification of classic networking mode, integrated into kubernetes
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,32 +0,0 @@
## CloudConfiguration v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | CloudConfiguration
CloudConfiguration is defines the cloud provider configuration
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
disableSecurityGroupIngress <br /> *boolean* | AWS cloud-config options
elbSecurityGroup <br /> *string* |
multizone <br /> *boolean* | GCE cloud-config options
nodeInstancePrefix <br /> *string* |
nodeTags <br /> *string* |
vSphereCoreDNSServer <br /> *string* |
vSphereDatacenter <br /> *string* |
vSphereDatastore <br /> *string* |
vSpherePassword <br /> *string* |
vSphereResourcePool <br /> *string* |
vSphereServer <br /> *string* |
vSphereUsername <br /> *string* | vSphere cloud-config specs

View File

@ -1,30 +0,0 @@
## CloudControllerManagerConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | CloudControllerManagerConfig
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
allocateNodeCIDRs <br /> *boolean* | AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if ConfigureCloudRoutes is true, to be set on the cloud provider.
cloudProvider <br /> *string* | CloudProvider is the provider for cloud services.
clusterCIDR <br /> *string* | ClusterCIDR is CIDR Range for Pods in cluster.
clusterName <br /> *string* | ClusterName is the instance prefix for the cluster.
configureCloudRoutes <br /> *boolean* | ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
image <br /> *string* | Image is the OCI image of the cloud controller manager.
leaderElection <br /> *[LeaderElectionConfiguration](#leaderelectionconfiguration-v1alpha2-kops)* | LeaderElection defines the configuration of leader election client.
logLevel <br /> *integer* | LogLevel is the verbosity of the logs.
master <br /> *string* | Master is the url for the kube api master.
useServiceAccountCredentials <br /> *boolean* | UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.

View File

@ -1,120 +0,0 @@
-----------
# Cluster v1alpha2 kops
>bdocs-tab:example
```bdocs-tab:example_yaml
apiVersion: kops/v1alpha2
kind: Cluster
metadata:
name: cluster-example
spec:
```
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | Cluster
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterlist-v1alpha2-kops">ClusterList kops/v1alpha2</a></li>
</ul> </aside>
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
kind <br /> *string* | 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
metadata <br /> *[ObjectMeta](#objectmeta-v1-meta)* |
spec <br /> *[ClusterSpec](#clusterspec-v1alpha2-kops)* |
### ClusterSpec v1alpha2 kops
<aside class="notice">
Appears In:
<ul>
<li><a href="#cluster-v1alpha2-kops">Cluster kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
additionalPolicies <br /> *object* | Additional policies to add for roles
api <br /> *[AccessSpec](#accessspec-v1alpha2-kops)* | API field controls how the API is exposed outside the cluster
assets <br /> *[Assets](#assets-v1alpha2-kops)* | Alternative locations for files and containers
authentication <br /> *[AuthenticationSpec](#authenticationspec-v1alpha2-kops)* | Authentication field controls how the cluster is configured for authentication
authorization <br /> *[AuthorizationSpec](#authorizationspec-v1alpha2-kops)* | Authorization field controls how the cluster is configured for authorization
channel <br /> *string* | The Channel we are following
cloudConfig <br /> *[CloudConfiguration](#cloudconfiguration-v1alpha2-kops)* |
cloudControllerManager <br /> *[CloudControllerManagerConfig](#cloudcontrollermanagerconfig-v1alpha2-kops)* |
cloudLabels <br /> *object* | Tags for AWS resources
cloudProvider <br /> *string* | The CloudProvider to use (aws or gce)
clusterDNSDomain <br /> *string* | ClusterDNSDomain is the suffix we use for internal DNS names (normally cluster.local)
configBase <br /> *string* | ConfigBase is the path where we store configuration for the cluster This might be different that the location when the cluster spec itself is stored, both because this must be accessible to the cluster, and because it might be on a different cloud or storage system (etcd vs S3)
configStore <br /> *string* | ConfigStore is the VFS path to where the configuration (Cluster, InstanceGroups etc) is stored
dnsZone <br /> *string* | DNSZone is the DNS zone we should use when configuring DNS This is because some clouds let us define a managed zone foo.bar, and then have kubernetes.dev.foo.bar, without needing to define dev.foo.bar as a hosted zone. DNSZone will probably be a suffix of the MasterPublicName and MasterInternalName Note that DNSZone can either by the host name of the zone (containing dots), or can be an identifier for the zone.
docker <br /> *[DockerConfig](#dockerconfig-v1alpha2-kops)* | Component configurations
egressProxy <br /> *[EgressProxySpec](#egressproxyspec-v1alpha2-kops)* | HTTPProxy defines connection information to support use of a private cluster behind an forward HTTP Proxy
encryptionConfig <br /> *boolean* | EncryptionConfig holds the encryption config
etcdClusters <br /> *[EtcdClusterSpec](#etcdclusterspec-v1alpha2-kops) array* | EtcdClusters stores the configuration for each cluster
externalDns <br /> *[ExternalDNSConfig](#externaldnsconfig-v1alpha2-kops)* |
fileAssets <br /> *[FileAssetSpec](#fileassetspec-v1alpha2-kops) array* | A collection of files assets for deployed cluster wide
hooks <br /> *[HookSpec](#hookspec-v1alpha2-kops) array* | Hooks for custom actions e.g. on first installation
iam <br /> *[IAMSpec](#iamspec-v1alpha2-kops)* | IAM field adds control over the IAM security policies applied to resources
isolateMasters <br /> *boolean* | IsolatesMasters determines whether we should lock down masters so that they are not on the pod network. true is the kube-up behaviour, but it is very surprising: it means that daemonsets only work on the master if they have hostNetwork=true. false is now the default, and it will: * give the master a normal PodCIDR * run kube-proxy on the master * enable debugging handlers on the master, so kubectl logs works
keyStore <br /> *string* | KeyStore is the VFS path to where SSL keys and certificates are stored
kubeAPIServer <br /> *[KubeAPIServerConfig](#kubeapiserverconfig-v1alpha2-kops)* |
kubeControllerManager <br /> *[KubeControllerManagerConfig](#kubecontrollermanagerconfig-v1alpha2-kops)* |
kubeDNS <br /> *[KubeDNSConfig](#kubednsconfig-v1alpha2-kops)* |
kubeProxy <br /> *[KubeProxyConfig](#kubeproxyconfig-v1alpha2-kops)* |
kubeScheduler <br /> *[KubeSchedulerConfig](#kubeschedulerconfig-v1alpha2-kops)* |
kubelet <br /> *[KubeletConfigSpec](#kubeletconfigspec-v1alpha2-kops)* |
kubernetesApiAccess <br /> *string array* | KubernetesAPIAccess determines the permitted access to the API endpoints (master HTTPS) Currently only a single CIDR is supported (though a richer grammar could be added in future)
kubernetesVersion <br /> *string* | The version of kubernetes to install (optional, and can be a "spec" like stable)
masterInternalName <br /> *string* | MasterInternalName is the internal DNS name for the master nodes
masterKubelet <br /> *[KubeletConfigSpec](#kubeletconfigspec-v1alpha2-kops)* |
masterPublicName <br /> *string* | MasterPublicName is the external DNS name for the master nodes
networkCIDR <br /> *string* | NetworkCIDR is the CIDR used for the AWS VPC / GCE Network, or otherwise allocated to k8s This is a real CIDR, not the internal k8s network On AWS, it maps to the VPC CIDR. It is not required on GCE.
networkID <br /> *string* | NetworkID is an identifier of a network, if we want to reuse/share an existing network (e.g. an AWS VPC)
networking <br /> *[NetworkingSpec](#networkingspec-v1alpha2-kops)* | Networking configuration
nodePortAccess <br /> *string array* | NodePortAccess is a list of the CIDRs that can access the node ports range (30000-32767).
nonMasqueradeCIDR <br /> *string* | MasterIPRange string `json:",omitempty"` NonMasqueradeCIDR is the CIDR for the internal k8s network (on which pods & services live) It cannot overlap ServiceClusterIPRange
project <br /> *string* | Project is the cloud project we should use, required on GCE
secretStore <br /> *string* | SecretStore is the VFS path to where secrets are stored
serviceClusterIPRange <br /> *string* | ServiceClusterIPRange is the CIDR, from the internal network, where we allocate IPs for services
sshAccess <br /> *string array* | SSHAccess determines the permitted access to SSH Currently only a single CIDR is supported (though a richer grammar could be added in future)
sshKeyName <br /> *string* | SSHKeyName specifies a preexisting SSH key to use
subnets <br /> *[ClusterSubnetSpec](#clustersubnetspec-v1alpha2-kops) array* | Configuration of subnets we are targeting
topology <br /> *[TopologySpec](#topologyspec-v1alpha2-kops)* | Topology defines the type of network topology to use on the cluster - default public This is heavily weighted towards AWS for the time being, but should also be agnostic enough to port out to GCE later if needed
updatePolicy <br /> *string* | UpdatePolicy determines the policy for applying upgrades automatically. Valid values: 'external' do not apply updates automatically - they are applied manually or by an external system missing: default policy (currently OS security upgrades that do not require a reboot)
### ClusterList v1alpha2 kops
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
items <br /> *[Cluster](#cluster-v1alpha2-kops) array* |
kind <br /> *string* | 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
metadata <br /> *[ListMeta](#listmeta-v1-meta)* |

View File

@ -1,27 +0,0 @@
## ClusterSubnetSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | ClusterSubnetSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
cidr <br /> *string* |
egress <br /> *string* | Egress defines the method of traffic egress for this subnet
id <br /> *string* | ProviderID is the cloud provider id for the objects associated with the zone (the subnet on AWS)
name <br /> *string* |
region <br /> *string* | Region is the region the subnet is in, set for subnets that are regionally scoped
type <br /> *string* |
zone <br /> *string* | Zone is the zone the subnet is in, set for subnets that are zonally scoped

View File

@ -1,20 +0,0 @@
## CNINetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | CNINetworkingSpec
CNINetworkingSpec is the specification for networking that is implemented by a Daemonset Networking is not managed by kops - we can create options here that directly configure e.g. weave but this is useful for arbitrary network modes or for modes that don't need additional configuration.
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,21 +0,0 @@
## DeleteOptions v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | DeleteOptions
DeleteOptions may be provided when deleting an API object.
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
gracePeriodSeconds <br /> *integer* | The duration in seconds before the object should be deleted. Value must be non-negative integer. The value zero indicates delete immediately. If this value is nil, the default grace period for the specified type will be used. Defaults to a per object value if not specified. zero means delete immediately.
kind <br /> *string* | 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
orphanDependents <br /> *boolean* | Deprecated: please use the PropagationPolicy, this field will be deprecated in 1.7. Should the dependent objects be orphaned. If true/false, the "orphan" finalizer will be added to/removed from the object's finalizers list. Either this field or PropagationPolicy may be set, but not both.
preconditions <br /> *[Preconditions](#preconditions-v1-meta)* | Must be fulfilled before a deletion is carried out. If not possible, a 409 Conflict status will be returned.
propagationPolicy <br /> *string* | 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.

View File

@ -1,20 +0,0 @@
## DNSAccessSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | DNSAccessSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#accessspec-v1alpha2-kops">AccessSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,21 +0,0 @@
## DNSSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | DNSSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#topologyspec-v1alpha2-kops">TopologySpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
type <br /> *string* |

View File

@ -1,35 +0,0 @@
## DockerConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | DockerConfig
DockerConfig is the configuration for docker
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
authorizationPlugins <br /> *string array* | AuthorizationPlugins is a list of authorization plugins
bridge <br /> *string* | Bridge is the network interface containers should bind onto
bridgeIP <br /> *string* | BridgeIP is a specific IP address and netmask for the docker0 bridge, using standard CIDR notation
defaultUlimit <br /> *string array* | DefaultUlimit is the ulimits for containers
insecureRegistry <br /> *string* | InsecureRegistry enable insecure registry communication @question according to dockers this a list??
ipMasq <br /> *boolean* | IPMasq enables ip masquerading for containers
ipTables <br /> *boolean* | IPtables enables addition of iptables rules
logDriver <br /> *string* | LogDriver is the defailt driver for container logs (default "json-file")
logLevel <br /> *string* | LogLevel is the logging level ("debug", "info", "warn", "error", "fatal") (default "info")
logOpt <br /> *string array* | Logopt is a series of options given to the log driver options for containers
mtu <br /> *integer* | MTU is the containers network MTU
registryMirrors <br /> *string array* | RegistryMirrors is a referred list of docker registry mirror
storage <br /> *string* | Storage is the docker storage driver to use
storageOpts <br /> *string array* | StorageOpts is a series of options passed to the storage driver
version <br /> *string* | Version is consumed by the nodeup and used to pick the docker version

View File

@ -1,23 +0,0 @@
## Duration v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Duration
Duration is a wrapper around time.Duration which supports correct marshaling to YAML and JSON. In particular, it marshals into strings, which can be used as map keys in json.
<aside class="notice">
Appears In:
<ul>
<li><a href="#kubeapiserverconfig-v1alpha2-kops">KubeAPIServerConfig kops/v1alpha2</a></li>
<li><a href="#kubecontrollermanagerconfig-v1alpha2-kops">KubeControllerManagerConfig kops/v1alpha2</a></li>
<li><a href="#kubeletconfigspec-v1alpha2-kops">KubeletConfigSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
Duration <br /> *integer* |

View File

@ -1,22 +0,0 @@
## EgressProxySpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | EgressProxySpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
excludes <br /> *string* |
httpProxy <br /> *[HTTPProxy](#httpproxy-v1alpha2-kops)* |

View File

@ -1,24 +0,0 @@
## EtcdClusterSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | EtcdClusterSpec
EtcdClusterSpec is the etcd cluster specification
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
enableEtcdTLS <br /> *boolean* | EnableEtcdTLS indicates the etcd service should use TLS between peers and clients
etcdMembers <br /> *[EtcdMemberSpec](#etcdmemberspec-v1alpha2-kops) array* | Members stores the configurations for each member of the cluster (including the data volume)
name <br /> *string* | Name is the name of the etcd cluster (main, events etc)
version <br /> *string* | Version is the version of etcd to run i.e. 2.1.2, 3.0.17 etcd

View File

@ -1,26 +0,0 @@
## EtcdMemberSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | EtcdMemberSpec
EtcdMemberSpec is a specification for a etcd member
<aside class="notice">
Appears In:
<ul>
<li><a href="#etcdclusterspec-v1alpha2-kops">EtcdClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
encryptedVolume <br /> *boolean* | EncryptedVolume indicates you want to encrypt the volume
instanceGroup <br /> *string* | InstanceGroup is the instanceGroup this volume is associated
kmsKeyId <br /> *string* | KmsKeyId is a AWS KMS ID used to encrypt the volume
name <br /> *string* | Name is the name of the member within the etcd cluster
volumeSize <br /> *integer* | VolumeSize is the underlining cloud volume size
volumeType <br /> *string* | VolumeType is the underlining cloud storage class

View File

@ -1,23 +0,0 @@
## ExecContainerAction v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | ExecContainerAction
ExecContainerAction defines an hood action
<aside class="notice">
Appears In:
<ul>
<li><a href="#hookspec-v1alpha2-kops">HookSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
command <br /> *string array* | Command is the command supplied to the above image
environment <br /> *object* | Environment is a map of environment variables added to the hook
image <br /> *string* | Image is the docker image

View File

@ -1,22 +0,0 @@
## ExternalDNSConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | ExternalDNSConfig
ExternalDNSConfig are options of the dns-controller
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
watchIngress <br /> *boolean* | WatchIngress indicates you want the dns-controller to watch and create dns entries for ingress resources
watchNamespace <br /> *string* | WatchNamespace is namespace to watch, detaults to all (use to control whom can creates dns entries)

View File

@ -1,20 +0,0 @@
## ExternalNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | ExternalNetworkingSpec
ExternalNetworkingSpec is the specification for networking that is implemented by a Daemonset It also uses kubenet
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,26 +0,0 @@
## FileAssetSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | FileAssetSpec
FileAssetSpec defines the structure for a file asset
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
<li><a href="#instancegroupspec-v1alpha2-kops">InstanceGroupSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
content <br /> *string* | Content is the contents of the file
isBase64 <br /> *boolean* | IsBase64 indicates the contents is base64 encoded
name <br /> *string* | Name is a shortened reference to the asset
path <br /> *string* | Path is the location this file should reside
roles <br /> *string array* | Roles is a list of roles the file asset should be applied, defaults to all

View File

@ -1,21 +0,0 @@
## FlannelNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | FlannelNetworkingSpec
FlannelNetworkingSpec declares that we want Flannel networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
backend <br /> *string* | Backend is the backend overlay type we want to use (vxlan or udp)

View File

@ -1,22 +0,0 @@
## GroupVersionForDiscovery v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | GroupVersionForDiscovery
GroupVersion contains the "group/version" and "version" string of a version. It is made a struct to keep extensibility.
<aside class="notice">
Appears In:
<ul>
<li><a href="#apigroup-v1-meta">APIGroup meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
groupVersion <br /> *string* | groupVersion specifies the API group and version in the form "group/version"
version <br /> *string* | version specifies the version in the form of "version". This is to save the clients the trouble of splitting the GroupVersion.

View File

@ -1,28 +0,0 @@
## HookSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | HookSpec
HookSpec is a definition hook
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
<li><a href="#instancegroupspec-v1alpha2-kops">InstanceGroupSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
before <br /> *string array* | Before is a series of systemd units which this hook must run before
disabled <br /> *boolean* | Disabled indicates if you want the unit switched off
execContainer <br /> *[ExecContainerAction](#execcontaineraction-v1alpha2-kops)* | ExecContainer is the image itself
manifest <br /> *string* | Manifest is a raw systemd unit file
name <br /> *string* | Name is an optional name for the hook, otherwise the name is kops-hook-<index>
requires <br /> *string array* | Requires is a series of systemd units the action requires
roles <br /> *string array* | Roles is an optional list of roles the hook should be rolled out to, defaults to all

View File

@ -1,22 +0,0 @@
## HTTPProxy v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | HTTPProxy
<aside class="notice">
Appears In:
<ul>
<li><a href="#egressproxyspec-v1alpha2-kops">EgressProxySpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
host <br /> *string* |
port <br /> *integer* |

View File

@ -1,21 +0,0 @@
## IAMSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | IAMSpec
IAMSpec adds control over the IAM security policies applied to resources
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
legacy <br /> *boolean* |

View File

@ -1,21 +0,0 @@
## Initializer v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Initializer
Initializer is information about an initializer that has not yet completed.
<aside class="notice">
Appears In:
<ul>
<li><a href="#initializers-v1-meta">Initializers meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
name <br /> *string* | name of the process that is responsible for initializing this object.

View File

@ -1,22 +0,0 @@
## Initializers v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Initializers
Initializers tracks the progress of initialization.
<aside class="notice">
Appears In:
<ul>
<li><a href="#objectmeta-v1-meta">ObjectMeta meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
pending <br /> *[Initializer](#initializer-v1-meta) array* <br /> **patch type**: *merge* <br /> **patch merge key**: *name* | 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.
result <br /> *[Status](#status-v1-meta)* | 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.

View File

@ -1,93 +0,0 @@
-----------
# InstanceGroup v1alpha2 kops
>bdocs-tab:example
```bdocs-tab:example_yaml
apiVersion: kops/v1alpha2
kind: InstanceGroup
metadata:
name: instancegroup-example
spec:
```
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | InstanceGroup
InstanceGroup represents a group of instances (either nodes or masters) with the same configuration
<aside class="notice">
Appears In:
<ul>
<li><a href="#instancegrouplist-v1alpha2-kops">InstanceGroupList kops/v1alpha2</a></li>
</ul> </aside>
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
kind <br /> *string* | 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
metadata <br /> *[ObjectMeta](#objectmeta-v1-meta)* |
spec <br /> *[InstanceGroupSpec](#instancegroupspec-v1alpha2-kops)* |
### InstanceGroupSpec v1alpha2 kops
<aside class="notice">
Appears In:
<ul>
<li><a href="#instancegroup-v1alpha2-kops">InstanceGroup kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
additionalSecurityGroups <br /> *string array* | AdditionalSecurityGroups attaches additional security groups (e.g. i-123456)
associatePublicIp <br /> *boolean* | AssociatePublicIP is true if we want instances to have a public IP
cloudLabels <br /> *object* | CloudLabels indicates the labels for instances in this group, at the AWS level
fileAssets <br /> *[FileAssetSpec](#fileassetspec-v1alpha2-kops) array* | FileAssets is a collection of file assets for this instance group
hooks <br /> *[HookSpec](#hookspec-v1alpha2-kops) array* | Hooks is a list of hooks for this instanceGroup, note: these can override the cluster wide ones if required
image <br /> *string* | Image is the instance instance (ami etc) we should use
kubelet <br /> *[KubeletConfigSpec](#kubeletconfigspec-v1alpha2-kops)* | Kubelet overrides kubelet config from the ClusterSpec
machineType <br /> *string* | MachineType is the instance class
maxPrice <br /> *string* | MaxPrice indicates this is a spot-pricing group, with the specified value as our max-price bid
maxSize <br /> *integer* | MaxSize is the maximum size of the pool
minSize <br /> *integer* | MinSize is the minimum size of the pool
nodeLabels <br /> *object* | NodeLabels indicates the kubernetes labels for nodes in this group
role <br /> *string* | Type determines the role of instances in this group: masters or nodes
rootVolumeIops <br /> *integer* | If volume type is io1, then we need to specify the number of Iops.
rootVolumeOptimization <br /> *boolean* | RootVolumeOptimization enables EBS optimization for an instance
rootVolumeSize <br /> *integer* | RootVolumeSize is the size of the EBS root volume to use, in GB
rootVolumeType <br /> *string* | RootVolumeType is the type of the EBS root volume to use (e.g. gp2)
subnets <br /> *string array* | Subnets is the names of the Subnets (as specified in the Cluster) where machines in this instance group should be placed
taints <br /> *string array* | Taints indicates the kubernetes taints for nodes in this group
tenancy <br /> *string* | Describes the tenancy of the instance group. Can be either default or dedicated. Currently only applies to AWS.
zones <br /> *string array* | Zones is the names of the Zones where machines in this instance group should be placed This is needed for regional subnets (e.g. GCE), to restrict placement to particular zones
### InstanceGroupList v1alpha2 kops
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
items <br /> *[InstanceGroup](#instancegroup-v1alpha2-kops) array* |
kind <br /> *string* | 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
metadata <br /> *[ListMeta](#listmeta-v1-meta)* |

View File

@ -1,20 +0,0 @@
## KopeioAuthenticationSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KopeioAuthenticationSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#authenticationspec-v1alpha2-kops">AuthenticationSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,20 +0,0 @@
## KopeioNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KopeioNetworkingSpec
KopeioNetworkingSpec declares that we want Kopeio networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,63 +0,0 @@
## KubeAPIServerConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeAPIServerConfig
KubeAPIServerConfig defines the configuration for the kube api
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
address <br /> *string* | Address is the binding address for the kube api
admissionControl <br /> *string array* | AdmissionControl is a list of admission controllers to user
allowPrivileged <br /> *boolean* | AllowPrivileged indicates if we can run privileged containers
anonymousAuth <br /> *boolean* | AnonymousAuth indicates if anonymous authentication is permitted
apiServerCount <br /> *integer* | APIServerCount is the number of api servers
auditLogMaxAge <br /> *integer* | The maximum number of days to retain old audit log files based on the timestamp encoded in their filename.
auditLogMaxBackups <br /> *integer* | The maximum number of old audit log files to retain.
auditLogMaxSize <br /> *integer* | The maximum size in megabytes of the audit log file before it gets rotated. Defaults to 100MB.
auditLogPath <br /> *string* | If set, all requests coming to the apiserver will be logged to this file.
authenticationTokenWebhookCacheTtl <br /> *[Duration](#duration-v1-meta)* | The duration to cache responses from the webhook token authenticator. Default is 2m. (default 2m0s)
authenticationTokenWebhookConfigFile <br /> *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.
authorizationMode <br /> *string* | AuthorizationMode is the authorization mode the kubeapi is running in
authorizationRbacSuperUser <br /> *string* | AuthorizationRBACSuperUser is the name of the superuser for default rbac
basicAuthFile <br /> *string* |
clientCAFile <br /> *string* |
cloudProvider <br /> *string* | CloudProvider is the name of the cloudProvider we are using, aws, gce etcd
etcdCaFile <br /> *string* | EtcdCAFile is the path to a ca certificate
etcdCertFile <br /> *string* | EtcdCertFile is the path to a certificate
etcdKeyFile <br /> *string* | EtcdKeyFile is the path to a orivate key
etcdServers <br /> *string array* | EtcdServers is a list of the etcd service to connect
etcdServersOverrides <br /> *string array* | EtcdServersOverrides is per-resource etcd servers overrides, comma separated. The individual override format: group/resource#servers, where servers are http://ip:port, semicolon separated
experimentalEncryptionProviderConfig <br /> *string* | ExperimentalEncryptionProviderConfig enables encryption at rest for secrets.
image <br /> *string* | Image is the docker container used
insecurePort <br /> *integer* | InsecurePort is the port the insecure api runs
kubeletClientCertificate <br /> *string* | KubeletClientCertificate is the path of a certificate for secure communication between api and kubelet
kubeletClientKey <br /> *string* | KubeletClientKey is the path of a private to secure communication between api and kubelet
kubeletPreferredAddressTypes <br /> *string array* | KubeletPreferredAddressTypes is a list of the preferred NodeAddressTypes to use for kubelet connections
logLevel <br /> *integer* | LogLevel is the logging level of the api
oidcCAFile <br /> *string* | If set, the OpenID server's certificate will be verified by one of the authorities in the oidc-ca-file
oidcClientID <br /> *string* | The client ID for the OpenID Connect client, must be set if oidc-issuer-url is set.
oidcGroupsClaim <br /> *string* | If provided, the name of a custom OpenID Connect claim for specifying user groups. The claim value is expected to be a string or array of strings.
oidcIssuerURL <br /> *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).
oidcUsernameClaim <br /> *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.
proxyClientCertFile <br /> *string* | The apiserver's client certificate used for outbound requests.
proxyClientKeyFile <br /> *string* | The apiserver's client key used for outbound requests.
runtimeConfig <br /> *object* | RuntimeConfig is a series of keys/values are parsed into the `--runtime-config` parameters
securePort <br /> *integer* | SecurePort is the port the kube runs on
serviceClusterIPRange <br /> *string* | ServiceClusterIPRange is the service address range
serviceNodePortRange <br /> *string* | Passed as --service-node-port-range to kube-apiserver. Expects 'startPort-endPort' format. Eg. 30000-33000
storageBackend <br /> *string* | StorageBackend is the backend storage
tlsCertFile <br /> *string* |
tlsPrivateKeyFile <br /> *string* |
tokenAuthFile <br /> *string* |

View File

@ -1,34 +0,0 @@
## KubeControllerManagerConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeControllerManagerConfig
KubeControllerManagerConfig is the configuration for the controller
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
allocateNodeCIDRs <br /> *boolean* | AllocateNodeCIDRs enables CIDRs for Pods to be allocated and, if ConfigureCloudRoutes is true, to be set on the cloud provider.
attachDetachReconcileSyncPeriod <br /> *[Duration](#duration-v1-meta)* | ReconcilerSyncLoopPeriod is the amount of time the reconciler sync states loop wait between successive executions. Is set to 1 min by kops by default
cloudProvider <br /> *string* | CloudProvider is the provider for cloud services.
clusterCIDR <br /> *string* | ClusterCIDR is CIDR Range for Pods in cluster.
clusterName <br /> *string* | ClusterName is the instance prefix for the cluster.
configureCloudRoutes <br /> *boolean* | ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.
image <br /> *string* | Image is the docker image to use
leaderElection <br /> *[LeaderElectionConfiguration](#leaderelectionconfiguration-v1alpha2-kops)* | LeaderElection defines the configuration of leader election client.
logLevel <br /> *integer* | LogLevel is the defined logLevel
master <br /> *string* | Master is the url for the kube api master
rootCAFile <br /> *string* | rootCAFile is the root certificate authority will be included in service account's token secret. This must be a valid PEM-encoded CA bundle.
serviceAccountPrivateKeyFile <br /> *string* | ServiceAccountPrivateKeyFile the location for a certificate for service account signing
terminatedPodGCThreshold <br /> *integer* | TerminatedPodGCThreshold is the 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.
useServiceAccountCredentials <br /> *boolean* | UseServiceAccountCredentials controls whether we use individual service account credentials for each controller.

View File

@ -1,24 +0,0 @@
## KubeDNSConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeDNSConfig
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
domain <br /> *string* |
image <br /> *string* | Image is the name of the docker image to run
replicas <br /> *integer* |
serverIP <br /> *string* |

View File

@ -1,75 +0,0 @@
## KubeletConfigSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeletConfigSpec
KubeletConfigSpec defines the kubelet configuration
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
<li><a href="#instancegroupspec-v1alpha2-kops">InstanceGroupSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
allowPrivileged <br /> *boolean* | AllowPrivileged enables containers to request privileged mode (defaults to false)
anonymousAuth <br /> *boolean* | AnonymousAuth permits you to control auth to the kubelet api
apiServers <br /> *string* | APIServers is not used for clusters version 1.6 and later - flag removed
babysitDaemons <br /> *boolean* | The node has babysitter process monitoring docker and kubelet. Removed as of 1.7
cgroupRoot <br /> *string* | cgroupRoot is the root cgroup to use for pods. This is handled by the container runtime on a best effort basis.
clientCaFile <br /> *string* | ClientCAFile is the path to a CA certificate
cloudProvider <br /> *string* | CloudProvider is the provider for cloud services.
clusterDNS <br /> *string* | ClusterDNS is the IP address for a cluster DNS server
clusterDomain <br /> *string* | ClusterDomain is the DNS domain for this cluster
configureCbr0 <br /> *boolean* | configureCBR0 enables the kublet to configure cbr0 based on Node.Spec.PodCIDR.
enableCustomMetrics <br /> *boolean* | Enable gathering custom metrics.
enableDebuggingHandlers <br /> *boolean* | EnableDebuggingHandlers enables server endpoints for log collection and local running of containers and commands
enforceNodeAllocatable <br /> *string* | Enforce Allocatable across pods whenever the overall usage across all pods exceeds Allocatable.
evictionHard <br /> *string* | Comma-delimited list of hard eviction expressions. For example, 'memory.available<300Mi'.
evictionMaxPodGracePeriod <br /> *integer* | Maximum allowed grace period (in seconds) to use when terminating pods in response to a soft eviction threshold being met.
evictionMinimumReclaim <br /> *string* | Comma-delimited list 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.
evictionPressureTransitionPeriod <br /> *[Duration](#duration-v1-meta)* | Duration for which the kubelet has to wait before transitioning out of an eviction pressure condition.
evictionSoft <br /> *string* | Comma-delimited list of soft eviction expressions. For example, 'memory.available<300Mi'.
evictionSoftGracePeriod <br /> *string* | Comma-delimited list of grace periods for each soft eviction signal. For example, 'memory.available=30s'.
featureGates <br /> *object* | FeatureGates is set of key=value pairs that describe feature gates for alpha/experimental features.
hairpinMode <br /> *string* | How should the kubelet configure the container bridge for hairpin packets. Setting this flag allows endpoints in a Service to loadbalance back to themselves if they should try to access their own Service. Values: "promiscuous-bridge": make the container bridge promiscuous. "hairpin-veth": set the hairpin flag on container veth interfaces. "none": do nothing. Setting --configure-cbr0 to false implies that to achieve hairpin NAT one must set --hairpin-mode=veth-flag, because bridge assumes the existence of a container bridge named cbr0.
hostnameOverride <br /> *string* | HostnameOverride is the hostname used to identify the kubelet instead of the actual hostname.
imageGCHighThresholdPercent <br /> *integer* | ImageGCHighThresholdPercent is the percent of disk usage after which image garbage collection is always run.
imageGCLowThresholdPercent <br /> *integer* | ImageGCLowThresholdPercent is the percent of disk usage before which image garbage collection is never run. Lowest disk usage to garbage collect to.
kubeReserved <br /> *object* | Resource reservation for kubernetes system daemons like the kubelet, container runtime, node problem detector, etc.
kubeReservedCgroup <br /> *string* | Control group for kube daemons.
kubeconfigPath <br /> *string* | KubeconfigPath is the path of kubeconfig for the kubelet
kubeletCgroups <br /> *string* | KubeletCgroups is the absolute name of cgroups to isolate the kubelet in.
logLevel <br /> *integer* | LogLevel is the logging level of the kubelet
maxPods <br /> *integer* | MaxPods is the number of pods that can run on this Kubelet.
networkPluginMTU <br /> *integer* | NetworkPluginMTU is the MTU to be passed to the network plugin, and overrides the default MTU for cases where it cannot be automatically computed (such as IPSEC).
networkPluginName <br /> *string* | NetworkPluginName is the name of the network plugin to be invoked for various events in kubelet/pod lifecycle
nodeLabels <br /> *object* | NodeLabels to add when registering the node in the cluster.
nonMasqueradeCIDR <br /> *string* | NonMasqueradeCIDR configures masquerading: traffic to IPs outside this range will use IP masquerade.
nvidiaGPUs <br /> *integer* | NvidiaGPUs is the number of NVIDIA GPU devices on this node.
podCIDR <br /> *string* | PodCIDR is the CIDR to use for pod IP addresses, only used in standalone mode. In cluster mode, this is obtained from the master.
podInfraContainerImage <br /> *string* | PodInfraContainerImage is the image whose network/ipc containers in each pod will use.
podManifestPath <br /> *string* | config is the path to the config file or directory of files
readOnlyPort <br /> *integer* | ReadOnlyPort is the port used by the kubelet api for read-only access (default 10255)
reconcileCIDR <br /> *boolean* | ReconcileCIDR is Reconcile node CIDR with the CIDR specified by the API server. No-op if register-node or configure-cbr0 is false.
registerNode <br /> *boolean* | RegisterNode enables automatic registration with the apiserver.
registerSchedulable <br /> *boolean* | registerSchedulable tells the kubelet to register the node as schedulable. No-op if register-node is false.
requireKubeconfig <br /> *boolean* | RequireKubeconfig indicates a kubeconfig is required
resolvConf <br /> *string* | ResolverConfig is the resolver configuration file used as the basis for the container DNS resolution configuration."), []
runtimeCgroups <br /> *string* | Cgroups that container runtime is expected to be isolated in.
runtimeRequestTimeout <br /> *[Duration](#duration-v1-meta)* | RuntimeRequestTimeout is timeout for runtime requests on - pull, logs, exec and attach
seccompProfileRoot <br /> *string* | SeccompProfileRoot is the directory path for seccomp profiles.
serializeImagePulls <br /> *boolean* | // SerializeImagePulls when enabled, tells the Kubelet to 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.
systemCgroups <br /> *string* | SystemCgroups is absolute name of cgroups in which to place all non-kernel processes that are not already in a container. Empty for no container. Rolling back the flag requires a reboot.
systemReserved <br /> *object* | Capture resource reservation for OS system daemons like sshd, udev, etc.
systemReservedCgroup <br /> *string* | Parent control group for OS system daemons.
taints <br /> *string array* | Taints to add when registering a node in the cluster
volumePluginDirectory <br /> *string* | The full path of the directory in which to search for additional third party volume plugins
volumeStatsAggPeriod <br /> *[Duration](#duration-v1-meta)* | VolumeStatsAggPeriod is the interval for kubelet to calculate and cache the volume disk usage for all pods and volumes

View File

@ -1,20 +0,0 @@
## KubenetNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubenetNetworkingSpec
KubenetNetworkingSpec is the specification for kubenet networking, largely integrated but intended to replace classic
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,27 +0,0 @@
## KubeProxyConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeProxyConfig
KubeProxyConfig defined the configuration for a proxy
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
clusterCIDR <br /> *string* | ClusterCIDR is the CIDR range of the pods in the cluster
cpuRequest <br /> *string* |
featureGates <br /> *object* | FeatureGates is a series of key pairs used to switch on features for the proxy
hostnameOverride <br /> *string* | HostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.
image <br /> *string* |
logLevel <br /> *integer* | LogLevel is the logging level of the proxy
master <br /> *string* | Master is the address of the Kubernetes API server (overrides any value in kubeconfig)

View File

@ -1,20 +0,0 @@
## KuberouterNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KuberouterNetworkingSpec
KuberouterNetworkingSpec declares that we want Kube-router networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,24 +0,0 @@
## KubeSchedulerConfig v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | KubeSchedulerConfig
KubeSchedulerConfig is the configuration for the kube-scheduler
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
image <br /> *string* | Image is the docker image to use
leaderElection <br /> *[LeaderElectionConfiguration](#leaderelectionconfiguration-v1alpha2-kops)* | LeaderElection defines the configuration of leader election client.
logLevel <br /> *integer* | LogLevel is the logging level
master <br /> *string* | Master is a url to the kube master

View File

@ -1,23 +0,0 @@
## LeaderElectionConfiguration v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | LeaderElectionConfiguration
LeaderElectionConfiguration defines the configuration of leader election clients for components that can run with leader election enabled.
<aside class="notice">
Appears In:
<ul>
<li><a href="#cloudcontrollermanagerconfig-v1alpha2-kops">CloudControllerManagerConfig kops/v1alpha2</a></li>
<li><a href="#kubecontrollermanagerconfig-v1alpha2-kops">KubeControllerManagerConfig kops/v1alpha2</a></li>
<li><a href="#kubeschedulerconfig-v1alpha2-kops">KubeSchedulerConfig kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
leaderElect <br /> *boolean* | leaderElect enables a leader election client to gain leadership before executing the main loop. Enable this when running replicated components for high availability.

View File

@ -1,25 +0,0 @@
## ListMeta v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | ListMeta
ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterlist-v1alpha2-kops">ClusterList kops/v1alpha2</a></li>
<li><a href="#instancegrouplist-v1alpha2-kops">InstanceGroupList kops/v1alpha2</a></li>
<li><a href="#status-v1-meta">Status meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
continue <br /> *string* | continue may be set if the user set a limit on the number of items returned, and indicates that the server has more data available. The value is opaque and may be used to issue another request to the endpoint that served this list to retrieve the next set of available objects. Continuing a list may not be possible if the server configuration has changed or more than a few minutes have passed. The resourceVersion field returned when using this continue value will be identical to the value in the first response.
resourceVersion <br /> *string* | 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
selfLink <br /> *string* | selfLink is a URL representing this object. Populated by the system. Read-only.

View File

@ -1,22 +0,0 @@
## LoadBalancerAccessSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | LoadBalancerAccessSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#accessspec-v1alpha2-kops">AccessSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
idleTimeoutSeconds <br /> *integer* |
type <br /> *string* |

View File

@ -1,31 +0,0 @@
## NetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | NetworkingSpec
NetworkingSpec allows selection and configuration of a networking plugin
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
calico <br /> *[CalicoNetworkingSpec](#caliconetworkingspec-v1alpha2-kops)* |
canal <br /> *[CanalNetworkingSpec](#canalnetworkingspec-v1alpha2-kops)* |
classic <br /> *[ClassicNetworkingSpec](#classicnetworkingspec-v1alpha2-kops)* |
cni <br /> *[CNINetworkingSpec](#cninetworkingspec-v1alpha2-kops)* |
external <br /> *[ExternalNetworkingSpec](#externalnetworkingspec-v1alpha2-kops)* |
flannel <br /> *[FlannelNetworkingSpec](#flannelnetworkingspec-v1alpha2-kops)* |
kopeio <br /> *[KopeioNetworkingSpec](#kopeionetworkingspec-v1alpha2-kops)* |
kubenet <br /> *[KubenetNetworkingSpec](#kubenetnetworkingspec-v1alpha2-kops)* |
kuberouter <br /> *[KuberouterNetworkingSpec](#kuberouternetworkingspec-v1alpha2-kops)* |
romana <br /> *[RomanaNetworkingSpec](#romananetworkingspec-v1alpha2-kops)* |
weave <br /> *[WeaveNetworkingSpec](#weavenetworkingspec-v1alpha2-kops)* |

View File

@ -1,37 +0,0 @@
## ObjectMeta v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | ObjectMeta
ObjectMeta is metadata that all persisted resources must have, which includes all objects users must create.
<aside class="notice">
Appears In:
<ul>
<li><a href="#cluster-v1alpha2-kops">Cluster kops/v1alpha2</a></li>
<li><a href="#instancegroup-v1alpha2-kops">InstanceGroup kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
annotations <br /> *object* | Annotations is an unstructured key value map stored with a resource that may be set by external tools to store and retrieve arbitrary metadata. They are not queryable and should be preserved when modifying objects. More info: http://kubernetes.io/docs/user-guide/annotations
clusterName <br /> *string* | The name of the cluster which the object belongs to. This is used to distinguish resources with same name and namespace in different clusters. This field is not set anywhere right now and apiserver is going to ignore it if set in create or update request.
creationTimestamp <br /> *[Time](#time-v1-meta)* | 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
deletionGracePeriodSeconds <br /> *integer* | Number of seconds allowed for this object to gracefully terminate before it will be removed from the system. Only set when deletionTimestamp is also set. May only be shortened. Read-only.
deletionTimestamp <br /> *[Time](#time-v1-meta)* | 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#metadata
finalizers <br /> *string array* <br /> **patch type**: *merge* | 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.
generateName <br /> *string* | GenerateName is an optional prefix, used by the server, to generate a unique name ONLY IF the Name field has not been provided. If this field is used, the name returned to the client will be different than the name passed. This value will also be combined with a unique suffix. The provided value has the same validation rules as the Name field, and may be truncated by the length of the suffix required to make the value unique on the server. 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#idempotency
generation <br /> *integer* | A sequence number representing a specific generation of the desired state. Populated by the system. Read-only.
initializers <br /> *[Initializers](#initializers-v1-meta)* | 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.
labels <br /> *object* | Map of string keys and values that can be used to organize and categorize (scope and select) objects. May match selectors of replication controllers and services. More info: http://kubernetes.io/docs/user-guide/labels
name <br /> *string* | Name must be unique within a namespace. Is required when creating resources, although some resources may allow a client to request the generation of an appropriate name automatically. Name is primarily intended for creation idempotence and configuration definition. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/identifiers#names
namespace <br /> *string* | Namespace defines the space within each name must be unique. An empty namespace is equivalent to the "default" namespace, but "default" is the canonical representation. Not all objects are required to be scoped to a namespace - the value of this field for those objects will be empty. Must be a DNS_LABEL. Cannot be updated. More info: http://kubernetes.io/docs/user-guide/namespaces
ownerReferences <br /> *[OwnerReference](#ownerreference-v1-meta) array* <br /> **patch type**: *merge* <br /> **patch merge key**: *uid* | List of objects depended by this object. If ALL objects in the list have been deleted, this object will be garbage collected. If this object is managed by a controller, then an entry in this list will point to this controller, with the controller field set to true. There cannot be more than one managing controller.
resourceVersion <br /> *string* | 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: https://git.k8s.io/community/contributors/devel/api-conventions.md#concurrency-control-and-consistency
selfLink <br /> *string* | SelfLink is a URL representing this object. Populated by the system. Read-only.
uid <br /> *string* | UID is the unique in time and space value for this object. It is typically generated by the server on successful creation of a resource and is not allowed to change on PUT operations. Populated by the system. Read-only. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

View File

@ -1,26 +0,0 @@
## OwnerReference v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | OwnerReference
OwnerReference contains enough information to let you identify an owning object. Currently, an owning object must be in the same namespace, so there is no namespace field.
<aside class="notice">
Appears In:
<ul>
<li><a href="#objectmeta-v1-meta">ObjectMeta meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
apiVersion <br /> *string* | API version of the referent.
blockOwnerDeletion <br /> *boolean* | If true, AND if the owner has the "foregroundDeletion" finalizer, then the owner cannot be deleted from the key-value store until this reference is removed. Defaults to false. To set this field, a user needs "delete" permission of the owner, otherwise 422 (Unprocessable Entity) will be returned.
controller <br /> *boolean* | If true, this reference points to the managing controller.
kind <br /> *string* | Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
name <br /> *string* | Name of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#names
uid <br /> *string* | UID of the referent. More info: http://kubernetes.io/docs/user-guide/identifiers#uids

View File

@ -1,15 +0,0 @@
## Patch v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Patch
Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
Field | Description
------------ | -----------

View File

@ -1,21 +0,0 @@
## Preconditions v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Preconditions
Preconditions must be fulfilled before an operation (update, delete, etc.) is carried out.
<aside class="notice">
Appears In:
<ul>
<li><a href="#deleteoptions-v1-meta">DeleteOptions meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
uid <br /> *string* | Specifies the target UID.

View File

@ -1,20 +0,0 @@
## RBACAuthorizationSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | RBACAuthorizationSpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#authorizationspec-v1alpha2-kops">AuthorizationSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,22 +0,0 @@
## RomanaNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | RomanaNetworkingSpec
RomanaNetworkingSpec declares that we want Romana networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
daemonServiceIP <br /> *string* | DaemonServiceIP is the Kubernetes Service IP for the romana-daemon pod
etcdServiceIP <br /> *string* | EtcdServiceIP is the Kubernetes Service IP for the etcd backend used by Romana

View File

@ -1,22 +0,0 @@
## ServerAddressByClientCIDR v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | ServerAddressByClientCIDR
ServerAddressByClientCIDR helps the client to determine the server address that they should use, depending on the clientCIDR that they match.
<aside class="notice">
Appears In:
<ul>
<li><a href="#apigroup-v1-meta">APIGroup meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
clientCIDR <br /> *string* | The CIDR with which clients can match their IP to figure out the server address that they should use.
serverAddress <br /> *string* | Address of this server, suitable for a client that matches the above CIDR. This can be a hostname, hostname:port, IP or IP:port.

View File

@ -1,28 +0,0 @@
## Status v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Status
Status is a return value for calls that don't return other objects.
<aside class="notice">
Appears In:
<ul>
<li><a href="#initializers-v1-meta">Initializers meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
apiVersion <br /> *string* | 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
code <br /> *integer* | Suggested HTTP return code for this status, 0 if not set.
details <br /> *[StatusDetails](#statusdetails-v1-meta)* | Extended data associated with the reason. Each reason may define its own extended details. This field is optional and the data returned is not guaranteed to conform to any schema except that defined by the reason type.
kind <br /> *string* | 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
message <br /> *string* | A human-readable description of the status of this operation.
metadata <br /> *[ListMeta](#listmeta-v1-meta)* | Standard list metadata. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds
reason <br /> *string* | A machine-readable description of why this operation is in the "Failure" status. If this value is empty there is no information available. A Reason clarifies an HTTP status code but does not override it.
status <br /> *string* | Status of the operation. One of: "Success" or "Failure". More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#spec-and-status

View File

@ -1,23 +0,0 @@
## StatusCause v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | StatusCause
StatusCause provides more information about an api.Status failure, including cases when multiple errors are encountered.
<aside class="notice">
Appears In:
<ul>
<li><a href="#statusdetails-v1-meta">StatusDetails meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
field <br /> *string* | The field of the resource that has caused this error, as named by its JSON serialization. May include dot and postfix notation for nested attributes. Arrays are zero-indexed. Fields may appear more than once in an array of causes due to fields having multiple errors. Optional. Examples: "name" - the field "name" on the current resource "items[0].name" - the field "name" on the first array entry in "items"
message <br /> *string* | A human-readable description of the cause of the error. This field may be presented as-is to a reader.
reason <br /> *string* | A machine-readable description of the cause of the error. If this value is empty there is no information available.

View File

@ -1,26 +0,0 @@
## StatusDetails v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | StatusDetails
StatusDetails is a set of additional properties that MAY be set by the server to provide additional information about a response. The Reason field of a Status object defines what attributes will be set. Clients must ignore fields that do not match the defined type of each attribute, and should assume that any attribute may be empty, invalid, or under defined.
<aside class="notice">
Appears In:
<ul>
<li><a href="#status-v1-meta">Status meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------
causes <br /> *[StatusCause](#statuscause-v1-meta) array* | The Causes array includes more details associated with the StatusReason failure. Not all StatusReasons may provide detailed causes.
group <br /> *string* | The group attribute of the resource associated with the status StatusReason.
kind <br /> *string* | 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
name <br /> *string* | The name attribute of the resource associated with the status StatusReason (when there is a single name which can be described).
retryAfterSeconds <br /> *integer* | If specified, the time in seconds before the operation should be retried. Some errors may indicate the client must take an alternate action - for those errors this field may indicate how long to wait before taking the alternate action.
uid <br /> *string* | UID of the resource. (when there is a single resource which can be described). More info: http://kubernetes.io/docs/user-guide/identifiers#uids

View File

@ -1,20 +0,0 @@
## Time v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | Time
<aside class="notice">
Appears In:
<ul>
<li><a href="#objectmeta-v1-meta">ObjectMeta meta/v1</a></li>
</ul></aside>
Field | Description
------------ | -----------

View File

@ -1,24 +0,0 @@
## TopologySpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | TopologySpec
<aside class="notice">
Appears In:
<ul>
<li><a href="#clusterspec-v1alpha2-kops">ClusterSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
bastion <br /> *[BastionSpec](#bastionspec-v1alpha2-kops)* | Bastion provide an external facing point of entry into a network containing private network instances. This host can provide a single point of fortification or audit and can be started and stopped to enable or disable inbound SSH communication from the Internet, some call bastion as the "jump server".
dns <br /> *[DNSSpec](#dnsspec-v1alpha2-kops)* | DNS configures options relating to DNS, in particular whether we use a public or a private hosted zone
masters <br /> *string* | The environment to launch the Kubernetes masters in public|private
nodes <br /> *string* | The environment to launch the Kubernetes nodes in public|private

View File

@ -1,17 +0,0 @@
## WatchEvent v1 meta
Group | Version | Kind
------------ | ---------- | -----------
meta | v1 | WatchEvent
Event represents a single event to a watched resource.
Field | Description
------------ | -----------
object | Object is: * If Type is Added or Modified: the new state of the object. * If Type is Deleted: the state of the object immediately before deletion. * If Type is Error: *Status is recommended; other types may make sense depending on context.
type <br /> *string* |

View File

@ -1,21 +0,0 @@
## WeaveNetworkingSpec v1alpha2 kops
Group | Version | Kind
------------ | ---------- | -----------
kops | v1alpha2 | WeaveNetworkingSpec
WeaveNetworkingSpec declares that we want Weave networking
<aside class="notice">
Appears In:
<ul>
<li><a href="#networkingspec-v1alpha2-kops">NetworkingSpec kops/v1alpha2</a></li>
</ul></aside>
Field | Description
------------ | -----------
mtu <br /> *integer* |

View File

@ -1,5 +0,0 @@
# <strong>kops</strong>
------------

View File

@ -1,5 +0,0 @@
# <strong>Old Versions</strong>
------------

View File

@ -1,5 +0,0 @@
# <strong>Overview</strong>
------------

View File

@ -1518,6 +1518,7 @@ Appears In:
Appears In:
<ul>
<li><a href="#etcdclusterspec-v1alpha2-kops">EtcdClusterSpec kops/v1alpha2</a></li>
<li><a href="#kubeapiserverconfig-v1alpha2-kops">KubeAPIServerConfig kops/v1alpha2</a></li>
<li><a href="#kubecontrollermanagerconfig-v1alpha2-kops">KubeControllerManagerConfig kops/v1alpha2</a></li>
<li><a href="#kubeletconfigspec-v1alpha2-kops">KubeletConfigSpec kops/v1alpha2</a></li>
@ -1621,6 +1622,14 @@ Appears In:
<td>Members stores the configurations for each member of the cluster (including the data volume)</td>
</tr>
<tr>
<td>heartbeatInterval <br /> <em><a href="#duration-v1-meta">Duration</a></em></td>
<td>HeartbeatInterval is the time (in milliseconds) for an etcd heartbeat interval</td>
</tr>
<tr>
<td>leaderElectionTimeout <br /> <em><a href="#duration-v1-meta">Duration</a></em></td>
<td>LeaderElectionTimeout is the time (in milliseconds) for an etcd leader election timeout</td>
</tr>
<tr>
<td>name <br /> <em>string</em></td>
<td>Name is the name of the etcd cluster (main, events etc)</td>
</tr>
@ -2095,6 +2104,10 @@ Appears In:
</thead>
<tbody>
<tr>
<td>allowContainerRegistry <br /> <em>boolean</em></td>
<td></td>
</tr>
<tr>
<td>legacy <br /> <em>boolean</em></td>
<td></td>
</tr>
@ -2431,6 +2444,26 @@ Appears In:
<td>The apiserver&#39;s client key used for outbound requests.</td>
</tr>
<tr>
<td>requestheaderAllowedNames <br /> <em>string array</em></td>
<td>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.</td>
</tr>
<tr>
<td>requestheaderClientCAFile <br /> <em>string</em></td>
<td>Root certificate bundle to use to verify client certificates on incoming requests before trusting usernames in headers specified by --requestheader-username-headers</td>
</tr>
<tr>
<td>requestheaderExtraHeaderPrefixes <br /> <em>string array</em></td>
<td>List of request header prefixes to inspect. X-Remote-Extra- is suggested.</td>
</tr>
<tr>
<td>requestheaderGroupHeaders <br /> <em>string array</em></td>
<td>List of request headers to inspect for groups. X-Remote-Group is suggested.</td>
</tr>
<tr>
<td>requestheaderUsernameHeaders <br /> <em>string array</em></td>
<td>List of request headers to inspect for usernames. X-Remote-User is common.</td>
</tr>
<tr>
<td>runtimeConfig <br /> <em>object</em></td>
<td>RuntimeConfig is a series of keys/values are parsed into the <code>--runtime-config</code> parameters</td>
</tr>
@ -2522,6 +2555,10 @@ Appears In:
<td>ConfigureCloudRoutes enables CIDRs allocated with to be configured on the cloud provider.</td>
</tr>
<tr>
<td>horizontalPodAutoscalerSyncPeriod <br /> <em><a href="#duration-v1-meta">Duration</a></em></td>
<td>HorizontalPodAutoscalerSyncPeriod is the amount of time between syncs During each period, the controller manager queries the resource utilization against the metrics specified in each HorizontalPodAutoscaler definition</td>
</tr>
<tr>
<td>image <br /> <em>string</em></td>
<td>Image is the docker image to use</td>
</tr>
@ -2647,6 +2684,10 @@ Appears In:
<td></td>
</tr>
<tr>
<td>enabled <br /> <em>boolean</em></td>
<td>Enabled allows enabling or disabling kube-proxy</td>
</tr>
<tr>
<td>featureGates <br /> <em>object</em></td>
<td>FeatureGates is a series of key pairs used to switch on features for the proxy</td>
</tr>
@ -2717,6 +2758,10 @@ Appears In:
<td>master <br /> <em>string</em></td>
<td>Master is a url to the kube master</td>
</tr>
<tr>
<td>usePolicyConfigMap <br /> <em>boolean</em></td>
<td>UsePolicyConfigMap enable setting the scheduler policy from a configmap</td>
</tr>
</tbody>
</table>
<h2 id="kubeletconfigspec-v1alpha2-kops">KubeletConfigSpec v1alpha2 kops</h2>

File diff suppressed because one or more lines are too long

View File

@ -1,3 +1,4 @@
var fs = require('fs');
var execSync = require('child_process').execSync;
var exec = function (cmd) {
execSync(cmd, {stdio: 'inherit'});
@ -40,6 +41,7 @@ task('doc', function (dev) {
});
task('docPublish', ['doc'], function () {
fs.writeFileSync('out/CNAME', 'api.ejs.co');
console.log('Pushing docs to gh-pages...');
exec('./node_modules/.bin/git-directory-deploy --directory out/');
console.log('Docs published to gh-pages.');
@ -57,8 +59,7 @@ publishTask('ejs', ['build'], function () {
'package.json',
'ejs.js',
'ejs.min.js',
'lib/**',
'test/**'
'lib/**'
]);
});

View File

@ -4,6 +4,7 @@ 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)
[![Known Vulnerabilities](https://snyk.io/test/npm/ejs/badge.svg?style=flat-square)](https://snyk.io/test/npm/ejs)
## Installation
@ -162,6 +163,21 @@ 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.
## Custom FileLoader
The default file loader is `fs.readFileSync`, if you want to customize it, you can set ejs.fileLoader.
```javascript
var ejs = require('ejs');
var myFileLoad = function (filePath) {
return 'myFileLoad: ' + fs.readFileSync(filePath);
};
ejs.fileLoader = myFileLoad;
```
With this feature, you can preprocess the template before reading it.
## Layouts
EJS does not specifically support blocks, but layouts can be implemented by

View File

@ -20,7 +20,7 @@
'use strict';
/**
* @file Embedded JavaScript templating engine.
* @file Embedded JavaScript templating engine. {@link http://ejs.co}
* @author Matthew Eernisse <mde@fleegix.org>
* @author Tiancheng "Timothy" Gu <timothygu99@gmail.com>
* @project EJS
@ -57,6 +57,10 @@ var _NAME = 'ejs';
var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)';
var _OPTS = ['delimiter', 'scope', 'context', 'debug', 'compileDebug',
'client', '_with', 'rmWhitespace', 'strict', 'filename'];
// We don't allow 'cache' option to be passed in the data obj
// for the normal `render` call, but this is where Express puts it
// so we make an exception for `renderFile`
var _OPTS_EXPRESS = _OPTS.concat('cache');
var _BOM = /^\uFEFF/;
/**
@ -69,6 +73,15 @@ var _BOM = /^\uFEFF/;
exports.cache = utils.cache;
/**
* Custom file loader. Useful for template preprocessing or restricting access
* to a certain part of the filesystem.
*
* @type {fileLoader}
*/
exports.fileLoader = fs.readFileSync;
/**
* Name of the object containing the locals.
*
@ -109,16 +122,36 @@ exports.resolveInclude = function(name, filename, isDir) {
* @param {Options} options compilation options
* @return {String}
*/
function getIncludePath(path, options){
function getIncludePath(path, options) {
var includePath;
var filePath;
var views = options.views;
// Abs path
if (path.charAt(0) == '/') {
includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true);
}
// Relative paths
else {
if (!options.filename) {
throw new Error('`include` use relative path requires the \'filename\' option.');
// Look relative to a passed filename first
if (options.filename) {
filePath = exports.resolveInclude(path, options.filename);
if (fs.existsSync(filePath)) {
includePath = filePath;
}
}
// Then look in any views directories
if (!includePath) {
if (Array.isArray(views) && views.some(function (v) {
filePath = exports.resolveInclude(path, v, true);
return fs.existsSync(filePath);
})) {
includePath = filePath;
}
}
if (!includePath) {
throw new Error('Could not find include include file.');
}
includePath = exports.resolveInclude(path, options.filename);
}
return includePath;
}
@ -155,7 +188,7 @@ function handleCache(options, template) {
return func;
}
if (!hasTemplate) {
template = fs.readFileSync(filename).toString().replace(_BOM, '');
template = fileLoader(filename).toString().replace(_BOM, '');
}
}
else if (!hasTemplate) {
@ -164,7 +197,7 @@ function handleCache(options, template) {
throw new Error('Internal EJS error: no file name or template '
+ 'provided');
}
template = fs.readFileSync(filename).toString().replace(_BOM, '');
template = fileLoader(filename).toString().replace(_BOM, '');
}
func = exports.compile(template, options);
if (options.cache) {
@ -173,6 +206,41 @@ function handleCache(options, template) {
return func;
}
/**
* Try calling handleCache with the given options and data and call the
* callback with the result. If an error occurs, call the callback with
* the error. Used by renderFile().
*
* @memberof module:ejs-internal
* @param {Options} options compilation options
* @param {Object} data template data
* @param {RenderFileCallback} cb callback
* @static
*/
function tryHandleCache(options, data, cb) {
var result;
try {
result = handleCache(options)(data);
}
catch (err) {
return cb(err);
}
return cb(null, result);
}
/**
* fileLoader is independent
*
* @param {String} filePath ejs file path.
* @return {String} The contents of the specified file.
* @static
*/
function fileLoader(filePath){
return exports.fileLoader(filePath);
}
/**
* Get the template function.
*
@ -206,8 +274,8 @@ function includeSource(path, options) {
var opts = utils.shallowCopy({}, options);
var includePath;
var template;
includePath = getIncludePath(path,opts);
template = fs.readFileSync(includePath).toString().replace(_BOM, '');
includePath = getIncludePath(path, opts);
template = fileLoader(includePath).toString().replace(_BOM, '');
opts.filename = includePath;
var templ = new Template(template, opts);
templ.generateSource();
@ -231,11 +299,11 @@ function includeSource(path, options) {
* @static
*/
function rethrow(err, str, flnm, lineno){
function rethrow(err, str, flnm, lineno, esc){
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 filename = esc(flnm); // eslint-disable-line
// Error context
var context = lines.slice(start, end).map(function (line, i){
var curr = i + start + 1;
@ -255,7 +323,7 @@ function rethrow(err, str, flnm, lineno){
throw err;
}
function stripSemi(str) {
function stripSemi(str){
return str.replace(/;(\s*$)/, '$1');
}
@ -331,43 +399,43 @@ exports.render = function (template, d, o) {
*/
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;
var filename = arguments[0];
var cb = arguments[arguments.length - 1];
var opts = {filename: filename};
var data;
// Don't pollute passed in opts obj with new vals
opts = utils.shallowCopy({}, opts);
if (arguments.length > 2) {
data = arguments[1];
// 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);
// No options object -- if there are optiony names
// in the data, copy them to options
if (arguments.length === 3) {
// Express 4
if (data.settings) {
if (data.settings['view options']) {
utils.shallowCopyFromList(opts, data.settings['view options'], _OPTS_EXPRESS);
}
if (data.settings.views) {
opts.views = data.settings.views;
}
}
// Express 3 and lower
else {
utils.shallowCopyFromList(opts, data, _OPTS_EXPRESS);
}
}
// Express 3 and lower
else {
utils.shallowCopyFromList(opts, data, optsKeys);
// Use shallowCopy so we don't pollute passed in opts obj with new vals
utils.shallowCopy(opts, arguments[2]);
}
}
opts.filename = filename;
try {
result = handleCache(opts)(data);
opts.filename = filename;
}
catch(err) {
return cb(err);
else {
data = {};
}
return cb(null, result);
return tryHandleCache(opts, data, cb);
};
/**
@ -400,6 +468,7 @@ function Template(text, opts) {
options.rmWhitespace = opts.rmWhitespace;
options.root = opts.root;
options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;
options.views = opts.views;
if (options.strict) {
options._with = false;
@ -435,7 +504,7 @@ Template.prototype = {
var opts = this.opts;
var prepended = '';
var appended = '';
var escape = opts.escapeFunction;
var escapeFn = opts.escapeFunction;
if (!this.source) {
this.generateSource();
@ -456,19 +525,15 @@ Template.prototype = {
+ 'try {' + '\n'
+ this.source
+ '} catch (e) {' + '\n'
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
+ ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n'
+ '}' + '\n';
}
else {
src = this.source;
}
if (opts.debug) {
console.log(src);
}
if (opts.client) {
src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src;
src = 'escapeFn = escapeFn || ' + escapeFn.toString() + ';' + '\n' + src;
if (opts.compileDebug) {
src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src;
}
@ -477,9 +542,12 @@ Template.prototype = {
if (opts.strict) {
src = '"use strict";\n' + src;
}
if (opts.debug) {
console.log(src);
}
try {
fn = new Function(opts.localsName + ', escape, include, rethrow', src);
fn = new Function(opts.localsName + ', escapeFn, include, rethrow', src);
}
catch(e) {
// istanbul ignore else
@ -510,7 +578,7 @@ Template.prototype = {
}
return includeFile(path, opts)(d);
};
return fn.apply(opts.context, [data || {}, escape, include, rethrow]);
return fn.apply(opts.context, [data || {}, escapeFn, include, rethrow]);
};
returnedFn.dependencies = this.dependencies;
return returnedFn;
@ -569,7 +637,7 @@ Template.prototype = {
+ ' try {' + '\n'
+ includeObj.source
+ ' } catch (e) {' + '\n'
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
+ ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n'
+ ' }' + '\n'
+ ' ; }).call(this)' + '\n';
}else{
@ -615,43 +683,43 @@ Template.prototype = {
return arr;
},
_addOutput: function (line) {
if (this.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)/, '');
this.truncate = false;
}
else if (this.opts.rmWhitespace) {
// rmWhitespace has already removed trailing spaces, just need
// to remove linebreaks
line = line.replace(/^\n/, '');
}
if (!line) {
return line;
}
// 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, '\\"');
this.source += ' ; __append("' + line + '")' + '\n';
},
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) {
@ -680,7 +748,7 @@ Template.prototype = {
case '-' + d + '>':
case '_' + d + '>':
if (this.mode == Template.modes.LITERAL) {
_addOutput();
this._addOutput(line);
}
this.mode = null;
@ -705,7 +773,7 @@ Template.prototype = {
break;
// Exec, esc, and output
case Template.modes.ESCAPED:
this.source += ' ; __append(escape(' + stripSemi(line) + '))' + '\n';
this.source += ' ; __append(escapeFn(' + stripSemi(line) + '))' + '\n';
break;
// Exec and output
case Template.modes.RAW:
@ -716,13 +784,13 @@ Template.prototype = {
break;
// Literal <%% mode, append as raw output
case Template.modes.LITERAL:
_addOutput();
this._addOutput(line);
break;
}
}
// In string mode, just add the output
else {
_addOutput();
this._addOutput(line);
}
}
@ -767,7 +835,7 @@ if (require.extensions) {
filename: filename,
client: true
};
var template = fs.readFileSync(filename).toString();
var template = fileLoader(filename).toString();
var fn = exports.compile(template, options);
module._compile('module.exports = ' + fn.toString() + ';', filename);
};
@ -934,11 +1002,12 @@ exports.shallowCopy = function (to, from) {
* @private
*/
exports.shallowCopyFromList = function (to, from, list) {
list.forEach(function (p) {
for (var i = 0; i < list.length; i++) {
var p = list[i];
if (typeof from[p] != 'undefined') {
to[p] = from[p];
}
});
}
return to;
};
@ -1384,7 +1453,7 @@ module.exports={
"engine",
"ejs"
],
"version": "2.5.4",
"version": "2.5.6",
"author": "Matthew Eernisse <mde@fleegix.org> (http://fleegix.org)",
"contributors": [
"Timothy Gu <timothygu99@gmail.com> (https://timothygu.github.io)"
@ -1413,7 +1482,7 @@ module.exports={
"node": ">=0.10.0"
},
"scripts": {
"test": "mocha",
"test": "jake test",
"lint": "eslint \"**/*.js\" Jakefile",
"coverage": "istanbul cover node_modules/mocha/bin/_mocha",
"doc": "jake doc",

File diff suppressed because one or more lines are too long

View File

@ -19,7 +19,7 @@
'use strict';
/**
* @file Embedded JavaScript templating engine.
* @file Embedded JavaScript templating engine. {@link http://ejs.co}
* @author Matthew Eernisse <mde@fleegix.org>
* @author Tiancheng "Timothy" Gu <timothygu99@gmail.com>
* @project EJS
@ -56,6 +56,10 @@ var _NAME = 'ejs';
var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)';
var _OPTS = ['delimiter', 'scope', 'context', 'debug', 'compileDebug',
'client', '_with', 'rmWhitespace', 'strict', 'filename'];
// We don't allow 'cache' option to be passed in the data obj
// for the normal `render` call, but this is where Express puts it
// so we make an exception for `renderFile`
var _OPTS_EXPRESS = _OPTS.concat('cache');
var _BOM = /^\uFEFF/;
/**
@ -68,6 +72,15 @@ var _BOM = /^\uFEFF/;
exports.cache = utils.cache;
/**
* Custom file loader. Useful for template preprocessing or restricting access
* to a certain part of the filesystem.
*
* @type {fileLoader}
*/
exports.fileLoader = fs.readFileSync;
/**
* Name of the object containing the locals.
*
@ -108,16 +121,36 @@ exports.resolveInclude = function(name, filename, isDir) {
* @param {Options} options compilation options
* @return {String}
*/
function getIncludePath(path, options){
function getIncludePath(path, options) {
var includePath;
var filePath;
var views = options.views;
// Abs path
if (path.charAt(0) == '/') {
includePath = exports.resolveInclude(path.replace(/^\/*/,''), options.root || '/', true);
}
// Relative paths
else {
if (!options.filename) {
throw new Error('`include` use relative path requires the \'filename\' option.');
// Look relative to a passed filename first
if (options.filename) {
filePath = exports.resolveInclude(path, options.filename);
if (fs.existsSync(filePath)) {
includePath = filePath;
}
}
// Then look in any views directories
if (!includePath) {
if (Array.isArray(views) && views.some(function (v) {
filePath = exports.resolveInclude(path, v, true);
return fs.existsSync(filePath);
})) {
includePath = filePath;
}
}
if (!includePath) {
throw new Error('Could not find include include file.');
}
includePath = exports.resolveInclude(path, options.filename);
}
return includePath;
}
@ -154,7 +187,7 @@ function handleCache(options, template) {
return func;
}
if (!hasTemplate) {
template = fs.readFileSync(filename).toString().replace(_BOM, '');
template = fileLoader(filename).toString().replace(_BOM, '');
}
}
else if (!hasTemplate) {
@ -163,7 +196,7 @@ function handleCache(options, template) {
throw new Error('Internal EJS error: no file name or template '
+ 'provided');
}
template = fs.readFileSync(filename).toString().replace(_BOM, '');
template = fileLoader(filename).toString().replace(_BOM, '');
}
func = exports.compile(template, options);
if (options.cache) {
@ -172,6 +205,41 @@ function handleCache(options, template) {
return func;
}
/**
* Try calling handleCache with the given options and data and call the
* callback with the result. If an error occurs, call the callback with
* the error. Used by renderFile().
*
* @memberof module:ejs-internal
* @param {Options} options compilation options
* @param {Object} data template data
* @param {RenderFileCallback} cb callback
* @static
*/
function tryHandleCache(options, data, cb) {
var result;
try {
result = handleCache(options)(data);
}
catch (err) {
return cb(err);
}
return cb(null, result);
}
/**
* fileLoader is independent
*
* @param {String} filePath ejs file path.
* @return {String} The contents of the specified file.
* @static
*/
function fileLoader(filePath){
return exports.fileLoader(filePath);
}
/**
* Get the template function.
*
@ -205,8 +273,8 @@ function includeSource(path, options) {
var opts = utils.shallowCopy({}, options);
var includePath;
var template;
includePath = getIncludePath(path,opts);
template = fs.readFileSync(includePath).toString().replace(_BOM, '');
includePath = getIncludePath(path, opts);
template = fileLoader(includePath).toString().replace(_BOM, '');
opts.filename = includePath;
var templ = new Template(template, opts);
templ.generateSource();
@ -230,11 +298,11 @@ function includeSource(path, options) {
* @static
*/
function rethrow(err, str, flnm, lineno){
function rethrow(err, str, flnm, lineno, esc){
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 filename = esc(flnm); // eslint-disable-line
// Error context
var context = lines.slice(start, end).map(function (line, i){
var curr = i + start + 1;
@ -254,7 +322,7 @@ function rethrow(err, str, flnm, lineno){
throw err;
}
function stripSemi(str) {
function stripSemi(str){
return str.replace(/;(\s*$)/, '$1');
}
@ -330,43 +398,43 @@ exports.render = function (template, d, o) {
*/
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;
var filename = arguments[0];
var cb = arguments[arguments.length - 1];
var opts = {filename: filename};
var data;
// Don't pollute passed in opts obj with new vals
opts = utils.shallowCopy({}, opts);
if (arguments.length > 2) {
data = arguments[1];
// 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);
// No options object -- if there are optiony names
// in the data, copy them to options
if (arguments.length === 3) {
// Express 4
if (data.settings) {
if (data.settings['view options']) {
utils.shallowCopyFromList(opts, data.settings['view options'], _OPTS_EXPRESS);
}
if (data.settings.views) {
opts.views = data.settings.views;
}
}
// Express 3 and lower
else {
utils.shallowCopyFromList(opts, data, _OPTS_EXPRESS);
}
}
// Express 3 and lower
else {
utils.shallowCopyFromList(opts, data, optsKeys);
// Use shallowCopy so we don't pollute passed in opts obj with new vals
utils.shallowCopy(opts, arguments[2]);
}
}
opts.filename = filename;
try {
result = handleCache(opts)(data);
opts.filename = filename;
}
catch(err) {
return cb(err);
else {
data = {};
}
return cb(null, result);
return tryHandleCache(opts, data, cb);
};
/**
@ -399,6 +467,7 @@ function Template(text, opts) {
options.rmWhitespace = opts.rmWhitespace;
options.root = opts.root;
options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;
options.views = opts.views;
if (options.strict) {
options._with = false;
@ -434,7 +503,7 @@ Template.prototype = {
var opts = this.opts;
var prepended = '';
var appended = '';
var escape = opts.escapeFunction;
var escapeFn = opts.escapeFunction;
if (!this.source) {
this.generateSource();
@ -455,19 +524,15 @@ Template.prototype = {
+ 'try {' + '\n'
+ this.source
+ '} catch (e) {' + '\n'
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
+ ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n'
+ '}' + '\n';
}
else {
src = this.source;
}
if (opts.debug) {
console.log(src);
}
if (opts.client) {
src = 'escape = escape || ' + escape.toString() + ';' + '\n' + src;
src = 'escapeFn = escapeFn || ' + escapeFn.toString() + ';' + '\n' + src;
if (opts.compileDebug) {
src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src;
}
@ -476,9 +541,12 @@ Template.prototype = {
if (opts.strict) {
src = '"use strict";\n' + src;
}
if (opts.debug) {
console.log(src);
}
try {
fn = new Function(opts.localsName + ', escape, include, rethrow', src);
fn = new Function(opts.localsName + ', escapeFn, include, rethrow', src);
}
catch(e) {
// istanbul ignore else
@ -509,7 +577,7 @@ Template.prototype = {
}
return includeFile(path, opts)(d);
};
return fn.apply(opts.context, [data || {}, escape, include, rethrow]);
return fn.apply(opts.context, [data || {}, escapeFn, include, rethrow]);
};
returnedFn.dependencies = this.dependencies;
return returnedFn;
@ -568,7 +636,7 @@ Template.prototype = {
+ ' try {' + '\n'
+ includeObj.source
+ ' } catch (e) {' + '\n'
+ ' rethrow(e, __lines, __filename, __line);' + '\n'
+ ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n'
+ ' }' + '\n'
+ ' ; }).call(this)' + '\n';
}else{
@ -614,43 +682,43 @@ Template.prototype = {
return arr;
},
_addOutput: function (line) {
if (this.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)/, '');
this.truncate = false;
}
else if (this.opts.rmWhitespace) {
// rmWhitespace has already removed trailing spaces, just need
// to remove linebreaks
line = line.replace(/^\n/, '');
}
if (!line) {
return line;
}
// 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, '\\"');
this.source += ' ; __append("' + line + '")' + '\n';
},
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) {
@ -679,7 +747,7 @@ Template.prototype = {
case '-' + d + '>':
case '_' + d + '>':
if (this.mode == Template.modes.LITERAL) {
_addOutput();
this._addOutput(line);
}
this.mode = null;
@ -704,7 +772,7 @@ Template.prototype = {
break;
// Exec, esc, and output
case Template.modes.ESCAPED:
this.source += ' ; __append(escape(' + stripSemi(line) + '))' + '\n';
this.source += ' ; __append(escapeFn(' + stripSemi(line) + '))' + '\n';
break;
// Exec and output
case Template.modes.RAW:
@ -715,13 +783,13 @@ Template.prototype = {
break;
// Literal <%% mode, append as raw output
case Template.modes.LITERAL:
_addOutput();
this._addOutput(line);
break;
}
}
// In string mode, just add the output
else {
_addOutput();
this._addOutput(line);
}
}
@ -766,7 +834,7 @@ if (require.extensions) {
filename: filename,
client: true
};
var template = fs.readFileSync(filename).toString();
var template = fileLoader(filename).toString();
var fn = exports.compile(template, options);
module._compile('module.exports = ' + fn.toString() + ';', filename);
};

View File

@ -133,11 +133,12 @@ exports.shallowCopy = function (to, from) {
* @private
*/
exports.shallowCopyFromList = function (to, from, list) {
list.forEach(function (p) {
for (var i = 0; i < list.length; i++) {
var p = list[i];
if (typeof from[p] != 'undefined') {
to[p] = from[p];
}
});
}
return to;
};

View File

@ -14,13 +14,13 @@
]
],
"_from": "ejs@>=2.5.2 <3.0.0",
"_id": "ejs@2.5.5",
"_id": "ejs@2.5.7",
"_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"
"host": "s3://npm-registry-packages",
"tmp": "tmp/ejs-2.5.7.tgz_1501385411193_0.3807816591579467"
},
"_npmUser": {
"name": "mde",
@ -40,8 +40,8 @@
"_requiredBy": [
"#DEV:/"
],
"_resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz",
"_shasum": "6ef4e954ea7dcf54f66aad2fe7aa421932d9ed77",
"_resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz",
"_shasum": "cc872c168880ae3c7189762fd5ffc00896c9518a",
"_shrinkwrap": null,
"_spec": "ejs@^2.5.2",
"_where": "/brodocs",
@ -75,8 +75,8 @@
},
"directories": {},
"dist": {
"shasum": "6ef4e954ea7dcf54f66aad2fe7aa421932d9ed77",
"tarball": "https://registry.npmjs.org/ejs/-/ejs-2.5.5.tgz"
"shasum": "cc872c168880ae3c7189762fd5ffc00896c9518a",
"tarball": "https://registry.npmjs.org/ejs/-/ejs-2.5.7.tgz"
},
"engines": {
"node": ">=0.10.0"
@ -107,7 +107,7 @@
"devdoc": "jake doc[dev]",
"doc": "jake doc",
"lint": "eslint \"**/*.js\" Jakefile",
"test": "mocha"
"test": "jake test"
},
"version": "2.5.5"
"version": "2.5.7"
}

View File

@ -254,6 +254,8 @@ Language names and aliases
+-------------------------+---------------------------------------------------+
| Haxe | haxe, hx |
+-------------------------+---------------------------------------------------+
| Hy | hy, hylang |
+-------------------------+---------------------------------------------------+
| Ini | ini |
+-------------------------+---------------------------------------------------+
| Inform7 | inform7, i7 |
@ -266,6 +268,8 @@ Language names and aliases
+-------------------------+---------------------------------------------------+
| JavaScript | javascript, js, jsx |
+-------------------------+---------------------------------------------------+
| Leaf | leaf |
+-------------------------+---------------------------------------------------+
| Lasso | lasso, ls, lassoscript |
+-------------------------+---------------------------------------------------+
| Less | less |
@ -302,6 +306,8 @@ Language names and aliases
+-------------------------+---------------------------------------------------+
| Moonscript | moonscript, moon |
+-------------------------+---------------------------------------------------+
| N1QL | n1ql |
+-------------------------+---------------------------------------------------+
| NSIS | nsis |
+-------------------------+---------------------------------------------------+
| Nginx | nginx, nginxconf |
@ -374,6 +380,8 @@ Language names and aliases
+-------------------------+---------------------------------------------------+
| Scilab | scilab, sci |
+-------------------------+---------------------------------------------------+
| Shell | shell, console |
+-------------------------+---------------------------------------------------+
| Smali | smali |
+-------------------------+---------------------------------------------------+
| Smalltalk | smalltalk, st |

View File

@ -51,19 +51,11 @@ https://highlightjs.org/
languages: undefined
};
// Object map that is used to escape some common HTML characters.
var escapeRegexMap = {
'&': '&amp;',
'<': '&lt;',
'>': '&gt;'
};
/* Utility functions */
function escape(value) {
return value.replace(/[&<>]/gm, function(character) {
return escapeRegexMap[character];
});
return value.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
}
function tag(node) {
@ -102,15 +94,17 @@ https://highlightjs.org/
}
}
function inherit(parent, obj) {
function inherit(parent) { // inherit(parent, override_obj, override_obj, ...)
var key;
var result = {};
var objects = Array.prototype.slice.call(arguments, 1);
for (key in parent)
result[key] = parent[key];
if (obj)
objects.forEach(function(obj) {
for (key in obj)
result[key] = obj[key];
});
return result;
}
@ -178,7 +172,7 @@ https://highlightjs.org/
}
function open(node) {
function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value) + '"';}
function attr_str(a) {return ' ' + a.nodeName + '="' + escape(a.value).replace('"', '&quot;') + '"';}
result += '<' + tag(node) + ArrayProto.map.call(node.attributes, attr_str).join('') + '>';
}
@ -221,6 +215,15 @@ https://highlightjs.org/
/* Initialization */
function expand_mode(mode) {
if (mode.variants && !mode.cached_variants) {
mode.cached_variants = mode.variants.map(function(variant) {
return inherit(mode, {variants: null}, variant);
});
}
return mode.cached_variants || (mode.endsWithParent && [inherit(mode)]) || [mode];
}
function compileLanguage(language) {
function reStr(re) {
@ -286,15 +289,9 @@ https://highlightjs.org/
if (!mode.contains) {
mode.contains = [];
}
var expanded_contains = [];
mode.contains.forEach(function(c) {
if (c.variants) {
c.variants.forEach(function(v) {expanded_contains.push(inherit(c, v));});
} else {
expanded_contains.push(c === 'self' ? mode : c);
}
});
mode.contains = expanded_contains;
mode.contains = Array.prototype.concat.apply([], mode.contains.map(function(c) {
return expand_mode(c === 'self' ? mode : c)
}));
mode.contains.forEach(function(c) {compileMode(c, mode);});
if (mode.starts) {
@ -593,6 +590,7 @@ https://highlightjs.org/
} else if (options.tabReplace) {
return p1.replace(/\t/g, options.tabReplace);
}
return '';
});
}
@ -735,7 +733,7 @@ https://highlightjs.org/
contains: [hljs.BACKSLASH_ESCAPE]
};
hljs.PHRASAL_WORDS_MODE = {
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|like)\b/
begin: /\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/
};
hljs.COMMENT = function (begin, end, inherits) {
var mode = hljs.inherit(

View File

@ -77,16 +77,20 @@ hljs.registerLanguage('haxe', require('./languages/haxe'));
hljs.registerLanguage('hsp', require('./languages/hsp'));
hljs.registerLanguage('htmlbars', require('./languages/htmlbars'));
hljs.registerLanguage('http', require('./languages/http'));
hljs.registerLanguage('hy', require('./languages/hy'));
hljs.registerLanguage('inform7', require('./languages/inform7'));
hljs.registerLanguage('ini', require('./languages/ini'));
hljs.registerLanguage('irpf90', require('./languages/irpf90'));
hljs.registerLanguage('java', require('./languages/java'));
hljs.registerLanguage('javascript', require('./languages/javascript'));
hljs.registerLanguage('jboss-cli', require('./languages/jboss-cli'));
hljs.registerLanguage('json', require('./languages/json'));
hljs.registerLanguage('julia', require('./languages/julia'));
hljs.registerLanguage('julia-repl', require('./languages/julia-repl'));
hljs.registerLanguage('kotlin', require('./languages/kotlin'));
hljs.registerLanguage('lasso', require('./languages/lasso'));
hljs.registerLanguage('ldif', require('./languages/ldif'));
hljs.registerLanguage('leaf', require('./languages/leaf'));
hljs.registerLanguage('less', require('./languages/less'));
hljs.registerLanguage('lisp', require('./languages/lisp'));
hljs.registerLanguage('livecodeserver', require('./languages/livecodeserver'));
@ -106,6 +110,7 @@ hljs.registerLanguage('perl', require('./languages/perl'));
hljs.registerLanguage('mojolicious', require('./languages/mojolicious'));
hljs.registerLanguage('monkey', require('./languages/monkey'));
hljs.registerLanguage('moonscript', require('./languages/moonscript'));
hljs.registerLanguage('n1ql', require('./languages/n1ql'));
hljs.registerLanguage('nginx', require('./languages/nginx'));
hljs.registerLanguage('nimrod', require('./languages/nimrod'));
hljs.registerLanguage('nix', require('./languages/nix'));
@ -131,6 +136,7 @@ hljs.registerLanguage('qml', require('./languages/qml'));
hljs.registerLanguage('r', require('./languages/r'));
hljs.registerLanguage('rib', require('./languages/rib'));
hljs.registerLanguage('roboconf', require('./languages/roboconf'));
hljs.registerLanguage('routeros', require('./languages/routeros'));
hljs.registerLanguage('rsl', require('./languages/rsl'));
hljs.registerLanguage('ruleslanguage', require('./languages/ruleslanguage'));
hljs.registerLanguage('rust', require('./languages/rust'));
@ -138,6 +144,7 @@ hljs.registerLanguage('scala', require('./languages/scala'));
hljs.registerLanguage('scheme', require('./languages/scheme'));
hljs.registerLanguage('scilab', require('./languages/scilab'));
hljs.registerLanguage('scss', require('./languages/scss'));
hljs.registerLanguage('shell', require('./languages/shell'));
hljs.registerLanguage('smali', require('./languages/smali'));
hljs.registerLanguage('smalltalk', require('./languages/smalltalk'));
hljs.registerLanguage('sml', require('./languages/sml'));

View File

@ -1,78 +1,509 @@
module.exports = function(hljs){
var IDENT_RE_RU = '[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*';
var OneS_KEYWORDS = 'возврат дата для если и или иначе иначеесли исключение конецесли ' +
'конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем ' +
'перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл ' +
'число экспорт';
var OneS_BUILT_IN = 'ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ' +
'ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос ' +
'восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц ' +
'датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации ' +
'запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр ' +
'значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера ' +
'имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы ' +
'кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби ' +
'конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс ' +
'максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ ' +
'назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби ' +
'началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели ' +
'номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки ' +
'основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально ' +
'отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята ' +
'получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта ' +
'получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации ' +
'пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц ' +
'разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына ' +
'рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп ' +
'сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить ' +
'стрколичествострок стрполучитьстроку стрчисловхождений сформироватьпозициюдокумента ' +
'счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты ' +
'установитьтана установитьтапо фиксшаблон формат цел шаблон';
var DQUOTE = {begin: '""'};
var STR_START = {
className: 'string',
begin: '"', end: '"|$',
contains: [DQUOTE]
};
var STR_CONT = {
// общий паттерн для определения идентификаторов
var UNDERSCORE_IDENT_RE = '[A-Za-zА-Яа-яёЁ_][A-Za-zА-Яа-яёЁ_0-9]+';
// v7 уникальные ключевые слова, отсутствующие в v8 ==> keyword
var v7_keywords =
'далее ';
// v8 ключевые слова ==> keyword
var v8_keywords =
'возврат вызватьисключение выполнить для если и из или иначе иначеесли исключение каждого конецесли ' +
'конецпопытки конеццикла не новый перейти перем по пока попытка прервать продолжить тогда цикл экспорт ';
// keyword : ключевые слова
var KEYWORD = v7_keywords + v8_keywords;
// v7 уникальные директивы, отсутствующие в v8 ==> meta-keyword
var v7_meta_keywords =
'загрузитьизфайла ';
// v8 ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях ==> meta-keyword
var v8_meta_keywords =
'вебклиент вместо внешнеесоединение клиент конецобласти мобильноеприложениеклиент мобильноеприложениесервер ' +
'наклиенте наклиентенасервере наклиентенасерверебезконтекста насервере насерверебезконтекста область перед ' +
'после сервер толстыйклиентобычноеприложение толстыйклиентуправляемоеприложение тонкийклиент ';
// meta-keyword : ключевые слова в инструкциях препроцессора, директивах компиляции, аннотациях
var METAKEYWORD = v7_meta_keywords + v8_meta_keywords;
// v7 системные константы ==> built_in
var v7_system_constants =
'разделительстраниц разделительстрок символтабуляции ';
// v7 уникальные методы глобального контекста, отсутствующие в v8 ==> built_in
var v7_global_context_methods =
'ansitooem oemtoansi ввестивидсубконто ввестиперечисление ввестипериод ввестиплансчетов выбранныйплансчетов ' +
'датагод датамесяц датачисло заголовоксистемы значениевстроку значениеизстроки каталогиб каталогпользователя ' +
'кодсимв конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца ' +
'коннедели лог лог10 максимальноеколичествосубконто названиеинтерфейса названиенабораправ назначитьвид ' +
'назначитьсчет найтиссылки началопериодаби началостандартногоинтервала начгода начквартала начмесяца ' +
'начнедели номерднягода номерднянедели номернеделигода обработкаожидания основнойжурналрасчетов ' +
'основнойплансчетов основнойязык очиститьокносообщений периодстр получитьвремята получитьдатута ' +
'получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта ' +
'префиксавтонумерации пропись пустоезначение разм разобратьпозициюдокумента рассчитатьрегистрына ' +
'рассчитатьрегистрыпо симв создатьобъект статусвозврата стрколичествострок сформироватьпозициюдокумента ' +
'счетпокоду текущеевремя типзначения типзначениястр установитьтана установитьтапо фиксшаблон шаблон ';
// v8 методы глобального контекста ==> built_in
var v8_global_context_methods =
'acos asin atan base64значение base64строка cos exp log log10 pow sin sqrt tan xmlзначение xmlстрока ' +
'xmlтип xmlтипзнч активноеокно безопасныйрежим безопасныйрежимразделенияданных булево ввестидату ввестизначение ' +
'ввестистроку ввестичисло возможностьчтенияxml вопрос восстановитьзначение врег выгрузитьжурналрегистрации ' +
'выполнитьобработкуоповещения выполнитьпроверкуправдоступа вычислить год данныеформывзначение дата день деньгода ' +
'деньнедели добавитьмесяц заблокироватьданныедляредактирования заблокироватьработупользователя завершитьработусистемы ' +
'загрузитьвнешнююкомпоненту закрытьсправку записатьjson записатьxml записатьдатуjson записьжурналарегистрации ' +
'заполнитьзначениясвойств запроситьразрешениепользователя запуститьприложение запуститьсистему зафиксироватьтранзакцию ' +
'значениевданныеформы значениевстрокувнутр значениевфайл значениезаполнено значениеизстрокивнутр значениеизфайла ' +
'изxmlтипа импортмоделиxdto имякомпьютера имяпользователя инициализироватьпредопределенныеданные информацияобошибке ' +
'каталогбиблиотекимобильногоустройства каталогвременныхфайлов каталогдокументов каталогпрограммы кодироватьстроку ' +
'кодлокализацииинформационнойбазы кодсимвола командасистемы конецгода конецдня конецквартала конецмесяца конецминуты ' +
'конецнедели конецчаса конфигурациябазыданныхизмененадинамически конфигурацияизменена копироватьданныеформы ' +
'копироватьфайл краткоепредставлениеошибки лев макс местноевремя месяц мин минута монопольныйрежим найти ' +
айтинедопустимыесимволыxml найтиокнопонавигационнойссылке найтипомеченныенаудаление найтипоссылкам найтифайлы ' +
'началогода началодня началоквартала началомесяца началоминуты началонедели началочаса начатьзапросразрешенияпользователя ' +
'начатьзапускприложения начатькопированиефайла начатьперемещениефайла начатьподключениевнешнейкомпоненты ' +
'начатьподключениерасширенияработыскриптографией начатьподключениерасширенияработысфайлами начатьпоискфайлов ' +
'начатьполучениекаталогавременныхфайлов начатьполучениекаталогадокументов начатьполучениерабочегокаталогаданныхпользователя ' +
'начатьполучениефайлов начатьпомещениефайла начатьпомещениефайлов начатьсозданиедвоичныхданныхизфайла начатьсозданиекаталога ' +
'начатьтранзакцию начатьудалениефайлов начатьустановкувнешнейкомпоненты начатьустановкурасширенияработыскриптографией ' +
'начатьустановкурасширенияработысфайлами неделягода необходимостьзавершениясоединения номерсеансаинформационнойбазы ' +
'номерсоединенияинформационнойбазы нрег нстр обновитьинтерфейс обновитьнумерациюобъектов обновитьповторноиспользуемыезначения ' +
'обработкапрерыванияпользователя объединитьфайлы окр описаниеошибки оповестить оповеститьобизменении ' +
'отключитьобработчикзапросанастроекклиенталицензирования отключитьобработчикожидания отключитьобработчикоповещения ' +
'открытьзначение открытьиндекссправки открытьсодержаниесправки открытьсправку открытьформу открытьформумодально ' +
'отменитьтранзакцию очиститьжурналрегистрации очиститьнастройкипользователя очиститьсообщения параметрыдоступа ' +
'перейтипонавигационнойссылке переместитьфайл подключитьвнешнююкомпоненту ' +
'подключитьобработчикзапросанастроекклиенталицензирования подключитьобработчикожидания подключитьобработчикоповещения ' +
'подключитьрасширениеработыскриптографией подключитьрасширениеработысфайлами подробноепредставлениеошибки ' +
'показатьвводдаты показатьвводзначения показатьвводстроки показатьвводчисла показатьвопрос показатьзначение ' +
'показатьинформациюобошибке показатьнакарте показатьоповещениепользователя показатьпредупреждение полноеимяпользователя ' +
'получитьcomобъект получитьxmlтип получитьадреспоместоположению получитьблокировкусеансов получитьвремязавершенияспящегосеанса ' +
'получитьвремязасыпанияпассивногосеанса получитьвремяожиданияблокировкиданных получитьданныевыбора ' +
'получитьдополнительныйпараметрклиенталицензирования получитьдопустимыекодылокализации получитьдопустимыечасовыепояса ' +
'получитьзаголовокклиентскогоприложения получитьзаголовоксистемы получитьзначенияотборажурналарегистрации ' +
'получитьидентификаторконфигурации получитьизвременногохранилища получитьимявременногофайла ' +
'получитьимяклиенталицензирования получитьинформациюэкрановклиента получитьиспользованиежурналарегистрации ' +
'получитьиспользованиесобытияжурналарегистрации получитькраткийзаголовокприложения получитьмакетоформления ' +
'получитьмаскувсефайлы получитьмаскувсефайлыклиента получитьмаскувсефайлысервера получитьместоположениепоадресу ' +
'получитьминимальнуюдлинупаролейпользователей получитьнавигационнуюссылку получитьнавигационнуюссылкуинформационнойбазы ' +
'получитьобновлениеконфигурациибазыданных получитьобновлениепредопределенныхданныхинформационнойбазы получитьобщиймакет ' +
'получитьобщуюформу получитьокна получитьоперативнуюотметкувремени получитьотключениебезопасногорежима ' +
'получитьпараметрыфункциональныхопцийинтерфейса получитьполноеимяпредопределенногозначения ' +
'получитьпредставлениянавигационныхссылок получитьпроверкусложностипаролейпользователей получитьразделительпути ' +
'получитьразделительпутиклиента получитьразделительпутисервера получитьсеансыинформационнойбазы ' +
'получитьскоростьклиентскогосоединения получитьсоединенияинформационнойбазы получитьсообщенияпользователю ' +
'получитьсоответствиеобъектаиформы получитьсоставстандартногоинтерфейсаodata получитьструктурухранениябазыданных ' +
'получитьтекущийсеансинформационнойбазы получитьфайл получитьфайлы получитьформу получитьфункциональнуюопцию ' +
'получитьфункциональнуюопциюинтерфейса получитьчасовойпоясинформационнойбазы пользователиос поместитьвовременноехранилище ' +
'поместитьфайл поместитьфайлы прав праводоступа предопределенноезначение представлениекодалокализации представлениепериода ' +
'представлениеправа представлениеприложения представлениесобытияжурналарегистрации представлениечасовогопояса предупреждение ' +
'прекратитьработусистемы привилегированныйрежим продолжитьвызов прочитатьjson прочитатьxml прочитатьдатуjson пустаястрока ' +
'рабочийкаталогданныхпользователя разблокироватьданныедляредактирования разделитьфайл разорватьсоединениесвнешнимисточникомданных ' +
'раскодироватьстроку рольдоступна секунда сигнал символ скопироватьжурналрегистрации смещениелетнеговремени ' +
'смещениестандартноговремени соединитьбуферыдвоичныхданных создатькаталог создатьфабрикуxdto сокрл сокрлп сокрп сообщить ' +
'состояние сохранитьзначение сохранитьнастройкипользователя сред стрдлина стрзаканчиваетсяна стрзаменить стрнайти стрначинаетсяс ' +
'строка строкасоединенияинформационнойбазы стрполучитьстроку стрразделить стрсоединить стрсравнить стрчисловхождений '+
'стрчислострок стршаблон текущаядата текущаядатасеанса текущаяуниверсальнаядата текущаяуниверсальнаядатавмиллисекундах ' +
'текущийвариантинтерфейсаклиентскогоприложения текущийвариантосновногошрифтаклиентскогоприложения текущийкодлокализации ' +
'текущийрежимзапуска текущийязык текущийязыксистемы тип типзнч транзакцияактивна трег удалитьданныеинформационнойбазы ' +
'удалитьизвременногохранилища удалитьобъекты удалитьфайлы универсальноевремя установитьбезопасныйрежим ' +
'установитьбезопасныйрежимразделенияданных установитьблокировкусеансов установитьвнешнююкомпоненту ' +
'установитьвремязавершенияспящегосеанса установитьвремязасыпанияпассивногосеанса установитьвремяожиданияблокировкиданных ' +
'установитьзаголовокклиентскогоприложения установитьзаголовоксистемы установитьиспользованиежурналарегистрации ' +
'установитьиспользованиесобытияжурналарегистрации установитькраткийзаголовокприложения ' +
'установитьминимальнуюдлинупаролейпользователей установитьмонопольныйрежим установитьнастройкиклиенталицензирования ' +
'установитьобновлениепредопределенныхданныхинформационнойбазы установитьотключениебезопасногорежима ' +
'установитьпараметрыфункциональныхопцийинтерфейса установитьпривилегированныйрежим ' +
'установитьпроверкусложностипаролейпользователей установитьрасширениеработыскриптографией ' +
'установитьрасширениеработысфайлами установитьсоединениесвнешнимисточникомданных установитьсоответствиеобъектаиформы ' +
'установитьсоставстандартногоинтерфейсаodata установитьчасовойпоясинформационнойбазы установитьчасовойпояссеанса ' +
'формат цел час часовойпояс часовойпояссеанса число числопрописью этоадресвременногохранилища ';
// v8 свойства глобального контекста ==> built_in
var v8_global_context_property =
'wsссылки библиотекакартинок библиотекамакетовоформлениякомпоновкиданных библиотекастилей бизнеспроцессы ' +
'внешниеисточникиданных внешниеобработки внешниеотчеты встроенныепокупки главныйинтерфейс главныйстиль ' +
'документы доставляемыеуведомления журналыдокументов задачи информацияобинтернетсоединении использованиерабочейдаты ' +
'историяработыпользователя константы критерииотбора метаданные обработки отображениерекламы отправкадоставляемыхуведомлений ' +
'отчеты панельзадачос параметрзапуска параметрысеанса перечисления планывидоврасчета планывидовхарактеристик ' +
'планыобмена планысчетов полнотекстовыйпоиск пользователиинформационнойбазы последовательности проверкавстроенныхпокупок ' +
'рабочаядата расширенияконфигурации регистрыбухгалтерии регистрынакопления регистрырасчета регистрысведений ' +
'регламентныезадания сериализаторxdto справочники средствагеопозиционирования средствакриптографии средствамультимедиа ' +
'средстваотображениярекламы средствапочты средствателефонии фабрикаxdto файловыепотоки фоновыезадания хранилищанастроек ' +
'хранилищевариантовотчетов хранилищенастроекданныхформ хранилищеобщихнастроек хранилищепользовательскихнастроекдинамическихсписков ' +
'хранилищепользовательскихнастроекотчетов хранилищесистемныхнастроек ';
// built_in : встроенные или библиотечные объекты (константы, классы, функции)
var BUILTIN =
v7_system_constants +
v7_global_context_methods + v8_global_context_methods +
v8_global_context_property;
// v8 системные наборы значений ==> class
var v8_system_sets_of_values =
'webцвета windowsцвета windowsшрифты библиотекакартинок рамкистиля символы цветастиля шрифтыстиля ';
// v8 системные перечисления - интерфейсные ==> class
var v8_system_enums_interface =
'автоматическоесохранениеданныхформывнастройках автонумерациявформе автораздвижениесерий ' +
'анимациядиаграммы вариантвыравниванияэлементовизаголовков вариантуправлениявысотойтаблицы ' +
'вертикальнаяпрокруткаформы вертикальноеположение вертикальноеположениеэлемента видгруппыформы ' +
'виддекорацииформы виддополненияэлементаформы видизмененияданных видкнопкиформы видпереключателя ' +
'видподписейкдиаграмме видполяформы видфлажка влияниеразмеранапузырекдиаграммы горизонтальноеположение ' +
'горизонтальноеположениеэлемента группировкаколонок группировкаподчиненныхэлементовформы ' +
'группыиэлементы действиеперетаскивания дополнительныйрежимотображения допустимыедействияперетаскивания ' +
'интервалмеждуэлементамиформы использованиевывода использованиеполосыпрокрутки ' +
'используемоезначениеточкибиржевойдиаграммы историявыборапривводе источникзначенийоситочекдиаграммы ' +
'источникзначенияразмерапузырькадиаграммы категориягруппыкоманд максимумсерий начальноеотображениедерева ' +
'начальноеотображениесписка обновлениетекстаредактирования ориентациядендрограммы ориентациядиаграммы ' +
'ориентацияметокдиаграммы ориентацияметоксводнойдиаграммы ориентацияэлементаформы отображениевдиаграмме ' +
'отображениевлегендедиаграммы отображениегруппыкнопок отображениезаголовкашкалыдиаграммы ' +
'отображениезначенийсводнойдиаграммы отображениезначенияизмерительнойдиаграммы ' +
'отображениеинтерваладиаграммыганта отображениекнопки отображениекнопкивыбора отображениеобсужденийформы ' +
'отображениеобычнойгруппы отображениеотрицательныхзначенийпузырьковойдиаграммы отображениепанелипоиска ' +
'отображениеподсказки отображениепредупрежденияприредактировании отображениеразметкиполосырегулирования ' +
'отображениестраницформы отображениетаблицы отображениетекстазначениядиаграммыганта ' +
'отображениеуправленияобычнойгруппы отображениефигурыкнопки палитрацветовдиаграммы поведениеобычнойгруппы ' +
'поддержкамасштабадендрограммы поддержкамасштабадиаграммыганта поддержкамасштабасводнойдиаграммы ' +
'поисквтаблицепривводе положениезаголовкаэлементаформы положениекартинкикнопкиформы ' +
'положениекартинкиэлементаграфическойсхемы положениекоманднойпанелиформы положениекоманднойпанелиэлементаформы ' +
'положениеопорнойточкиотрисовки положениеподписейкдиаграмме положениеподписейшкалызначенийизмерительнойдиаграммы ' +
'положениесостоянияпросмотра положениестрокипоиска положениетекстасоединительнойлинии положениеуправленияпоиском ' +
'положениешкалывремени порядокотображенияточекгоризонтальнойгистограммы порядоксерийвлегендедиаграммы ' +
'размеркартинки расположениезаголовкашкалыдиаграммы растягиваниеповертикалидиаграммыганта ' +
'режимавтоотображениясостояния режимвводастроктаблицы режимвыборанезаполненного режимвыделениядаты ' +
'режимвыделениястрокитаблицы режимвыделениятаблицы режимизмененияразмера режимизменениясвязанногозначения ' +
'режимиспользованиядиалогапечати режимиспользованияпараметракоманды режиммасштабированияпросмотра ' +
'режимосновногоокнаклиентскогоприложения режимоткрытияокнаформы режимотображениявыделения ' +
'режимотображениягеографическойсхемы режимотображениязначенийсерии режимотрисовкисеткиграфическойсхемы ' +
'режимполупрозрачностидиаграммы режимпробеловдиаграммы режимразмещениянастранице режимредактированияколонки ' +
'режимсглаживаниядиаграммы режимсглаживанияиндикатора режимсписказадач сквозноевыравнивание ' +
'сохранениеданныхформывнастройках способзаполнениятекстазаголовкашкалыдиаграммы ' +
'способопределенияограничивающегозначениядиаграммы стандартнаягруппакоманд стандартноеоформление ' +
'статусоповещенияпользователя стильстрелки типаппроксимациилиниитрендадиаграммы типдиаграммы ' +
'типединицышкалывремени типимпортасерийслоягеографическойсхемы типлиниигеографическойсхемы типлиниидиаграммы ' +
'типмаркерагеографическойсхемы типмаркерадиаграммы типобластиоформления ' +
'типорганизацииисточникаданныхгеографическойсхемы типотображениясериислоягеографическойсхемы ' +
'типотображенияточечногообъектагеографическойсхемы типотображенияшкалыэлементалегендыгеографическойсхемы ' +
'типпоискаобъектовгеографическойсхемы типпроекциигеографическойсхемы типразмещенияизмерений ' +
'типразмещенияреквизитовизмерений типрамкиэлементауправления типсводнойдиаграммы ' +
'типсвязидиаграммыганта типсоединениязначенийпосериямдиаграммы типсоединенияточекдиаграммы ' +
'типсоединительнойлинии типстороныэлементаграфическойсхемы типформыотчета типшкалырадарнойдиаграммы ' +
'факторлиниитрендадиаграммы фигуракнопки фигурыграфическойсхемы фиксациявтаблице форматдняшкалывремени ' +
'форматкартинки ширинаподчиненныхэлементовформы ';
// v8 системные перечисления - свойства прикладных объектов ==> class
var v8_system_enums_objects_properties =
'виддвижениябухгалтерии виддвижениянакопления видпериодарегистрарасчета видсчета видточкимаршрутабизнеспроцесса ' +
'использованиеагрегатарегистранакопления использованиегруппиэлементов использованиережимапроведения ' +
'использованиесреза периодичностьагрегатарегистранакопления режимавтовремя режимзаписидокумента режимпроведениядокумента ';
// v8 системные перечисления - планы обмена ==> class
var v8_system_enums_exchange_plans =
'авторегистрацияизменений допустимыйномерсообщения отправкаэлементаданных получениеэлементаданных ';
// v8 системные перечисления - табличный документ ==> class
var v8_system_enums_tabular_document =
'использованиерасшифровкитабличногодокумента ориентациястраницы положениеитоговколоноксводнойтаблицы ' +
'положениеитоговстроксводнойтаблицы положениетекстаотносительнокартинки расположениезаголовкагруппировкитабличногодокумента ' +
'способчтениязначенийтабличногодокумента типдвустороннейпечати типзаполненияобластитабличногодокумента ' +
'типкурсоровтабличногодокумента типлиниирисункатабличногодокумента типлинииячейкитабличногодокумента ' +
'типнаправленияпереходатабличногодокумента типотображениявыделениятабличногодокумента типотображениялинийсводнойтаблицы ' +
'типразмещениятекстатабличногодокумента типрисункатабличногодокумента типсмещениятабличногодокумента ' +
'типузоратабличногодокумента типфайлатабличногодокумента точностьпечати чередованиерасположениястраниц ';
// v8 системные перечисления - планировщик ==> class
var v8_system_enums_sheduler =
'отображениевремениэлементовпланировщика ';
// v8 системные перечисления - форматированный документ ==> class
var v8_system_enums_formatted_document =
'типфайлаформатированногодокумента ';
// v8 системные перечисления - запрос ==> class
var v8_system_enums_query =
'обходрезультатазапроса типзаписизапроса ';
// v8 системные перечисления - построитель отчета ==> class
var v8_system_enums_report_builder =
'видзаполнениярасшифровкипостроителяотчета типдобавленияпредставлений типизмеренияпостроителяотчета типразмещенияитогов ';
// v8 системные перечисления - работа с файлами ==> class
var v8_system_enums_files =
'доступкфайлу режимдиалогавыборафайла режимоткрытияфайла ';
// v8 системные перечисления - построитель запроса ==> class
var v8_system_enums_query_builder =
'типизмеренияпостроителязапроса ';
// v8 системные перечисления - анализ данных ==> class
var v8_system_enums_data_analysis =
'видданныханализа методкластеризации типединицыинтервалавременианализаданных типзаполнениятаблицырезультатаанализаданных ' +
'типиспользованиячисловыхзначенийанализаданных типисточникаданныхпоискаассоциаций типколонкианализаданныхдереворешений ' +
'типколонкианализаданныхкластеризация типколонкианализаданныхобщаястатистика типколонкианализаданныхпоискассоциаций ' +
'типколонкианализаданныхпоискпоследовательностей типколонкимоделипрогноза типмерырасстоянияанализаданных ' +
'типотсеченияправилассоциации типполяанализаданных типстандартизациианализаданных типупорядочиванияправилассоциациианализаданных ' +
'типупорядочиванияшаблоновпоследовательностейанализаданных типупрощениядереварешений ';
// v8 системные перечисления - xml, json, xs, dom, xdto, web-сервисы ==> class
var v8_system_enums_xml_json_xs_dom_xdto_ws =
'wsнаправлениепараметра вариантxpathxs вариантзаписидатыjson вариантпростоготипаxs видгруппымоделиxs видфасетаxdto ' +
ействиепостроителяdom завершенностьпростоготипаxs завершенностьсоставноготипаxs завершенностьсхемыxs запрещенныеподстановкиxs ' +
сключениягруппподстановкиxs категорияиспользованияатрибутаxs категорияограниченияидентичностиxs категорияограниченияпространствименxs ' +
етоднаследованияxs модельсодержимогоxs назначениетипаxml недопустимыеподстановкиxs обработкапробельныхсимволовxs обработкасодержимогоxs ' +
'ограничениезначенияxs параметрыотбораузловdom переносстрокjson позициявдокументеdom пробельныесимволыxml типатрибутаxml типзначенияjson ' +
'типканоническогоxml типкомпонентыxs типпроверкиxml типрезультатаdomxpath типузлаdom типузлаxml формаxml формапредставленияxs ' +
орматдатыjson экранированиесимволовjson ';
// v8 системные перечисления - система компоновки данных ==> class
var v8_system_enums_data_composition_system =
'видсравнениякомпоновкиданных действиеобработкирасшифровкикомпоновкиданных направлениесортировкикомпоновкиданных ' +
'расположениевложенныхэлементоврезультатакомпоновкиданных расположениеитоговкомпоновкиданных расположениегруппировкикомпоновкиданных ' +
'расположениеполейгруппировкикомпоновкиданных расположениеполякомпоновкиданных расположениереквизитовкомпоновкиданных ' +
'расположениересурсовкомпоновкиданных типбухгалтерскогоостаткакомпоновкиданных типвыводатекстакомпоновкиданных ' +
'типгруппировкикомпоновкиданных типгруппыэлементовотборакомпоновкиданных типдополненияпериодакомпоновкиданных ' +
'типзаголовкаполейкомпоновкиданных типмакетагруппировкикомпоновкиданных типмакетаобластикомпоновкиданных типостаткакомпоновкиданных ' +
'типпериодакомпоновкиданных типразмещениятекстакомпоновкиданных типсвязинаборовданныхкомпоновкиданных типэлементарезультатакомпоновкиданных ' +
'расположениелегендыдиаграммыкомпоновкиданных типпримененияотборакомпоновкиданных режимотображенияэлементанастройкикомпоновкиданных ' +
'режимотображениянастроеккомпоновкиданных состояниеэлементанастройкикомпоновкиданных способвосстановлениянастроеккомпоновкиданных ' +
'режимкомпоновкирезультата использованиепараметракомпоновкиданных автопозицияресурсовкомпоновкиданных '+
'вариантиспользованиягруппировкикомпоновкиданных расположениересурсоввдиаграммекомпоновкиданных фиксациякомпоновкиданных ' +
'использованиеусловногооформлениякомпоновкиданных ';
// v8 системные перечисления - почта ==> class
var v8_system_enums_email =
'важностьинтернетпочтовогосообщения обработкатекстаинтернетпочтовогосообщения способкодированияинтернетпочтовоговложения ' +
'способкодированиянеasciiсимволовинтернетпочтовогосообщения типтекстапочтовогосообщения протоколинтернетпочты ' +
'статусразборапочтовогосообщения ';
// v8 системные перечисления - журнал регистрации ==> class
var v8_system_enums_logbook =
'режимтранзакциизаписижурналарегистрации статустранзакциизаписижурналарегистрации уровеньжурналарегистрации ';
// v8 системные перечисления - криптография ==> class
var v8_system_enums_cryptography =
'расположениехранилищасертификатовкриптографии режимвключениясертификатовкриптографии режимпроверкисертификатакриптографии ' +
'типхранилищасертификатовкриптографии ';
// v8 системные перечисления - ZIP ==> class
var v8_system_enums_zip =
одировкаименфайловвzipфайле методсжатияzip методшифрованияzip режимвосстановленияпутейфайловzip режимобработкиподкаталоговzip ' +
'режимсохраненияпутейzip уровеньсжатияzip ';
// v8 системные перечисления -
// Блокировка данных, Фоновые задания, Автоматизированное тестирование,
// Доставляемые уведомления, Встроенные покупки, Интернет, Работа с двоичными данными ==> class
var v8_system_enums_other =
'звуковоеоповещение направлениепереходакстроке позициявпотоке порядокбайтов режимблокировкиданных режимуправленияблокировкойданных ' +
'сервисвстроенныхпокупок состояниефоновогозадания типподписчикадоставляемыхуведомлений уровеньиспользованиязащищенногосоединенияftp ';
// v8 системные перечисления - схема запроса ==> class
var v8_system_enums_request_schema =
'направлениепорядкасхемызапроса типдополненияпериодамисхемызапроса типконтрольнойточкисхемызапроса типобъединениясхемызапроса ' +
'типпараметрадоступнойтаблицысхемызапроса типсоединениясхемызапроса ';
// v8 системные перечисления - свойства объектов метаданных ==> class
var v8_system_enums_properties_of_metadata_objects =
'httpметод автоиспользованиеобщегореквизита автопрефиксномеразадачи вариантвстроенногоязыка видиерархии видрегистранакопления ' +
'видтаблицывнешнегоисточникаданных записьдвиженийприпроведении заполнениепоследовательностей индексирование ' +
'использованиебазыпланавидоврасчета использованиебыстроговыбора использованиеобщегореквизита использованиеподчинения ' +
'использованиеполнотекстовогопоиска использованиеразделяемыхданныхобщегореквизита использованиереквизита ' +
'назначениеиспользованияприложения назначениерасширенияконфигурации направлениепередачи обновлениепредопределенныхданных ' +
'оперативноепроведение основноепредставлениевидарасчета основноепредставлениевидахарактеристики основноепредставлениезадачи ' +
'основноепредставлениепланаобмена основноепредставлениесправочника основноепредставлениесчета перемещениеграницыприпроведении ' +
'периодичностьномерабизнеспроцесса периодичностьномерадокумента периодичностьрегистрарасчета периодичностьрегистрасведений ' +
'повторноеиспользованиевозвращаемыхзначений полнотекстовыйпоискпривводепостроке принадлежностьобъекта проведение ' +
'разделениеаутентификацииобщегореквизита разделениеданныхобщегореквизита разделениерасширенийконфигурацииобщегореквизита '+
'режимавтонумерацииобъектов режимзаписирегистра режимиспользованиямодальности ' +
'режимиспользованиясинхронныхвызововрасширенийплатформыивнешнихкомпонент режимповторногоиспользованиясеансов ' +
'режимполученияданныхвыборапривводепостроке режимсовместимости режимсовместимостиинтерфейса ' +
'режимуправленияблокировкойданныхпоумолчанию сериикодовпланавидовхарактеристик сериикодовпланасчетов ' +
'сериикодовсправочника созданиепривводе способвыбора способпоискастрокипривводепостроке способредактирования ' +
'типданныхтаблицывнешнегоисточникаданных типкодапланавидоврасчета типкодасправочника типмакета типномерабизнеспроцесса ' +
'типномерадокумента типномеразадачи типформы удалениедвижений ';
// v8 системные перечисления - разные ==> class
var v8_system_enums_differents =
'важностьпроблемыприменениярасширенияконфигурации вариантинтерфейсаклиентскогоприложения вариантмасштабаформклиентскогоприложения ' +
'вариантосновногошрифтаклиентскогоприложения вариантстандартногопериода вариантстандартнойдатыначала видграницы видкартинки ' +
'видотображенияполнотекстовогопоиска видрамки видсравнения видцвета видчисловогозначения видшрифта допустимаядлина допустимыйзнак ' +
спользованиеbyteordermark использованиеметаданныхполнотекстовогопоиска источникрасширенийконфигурации клавиша кодвозвратадиалога ' +
одировкаxbase кодировкатекста направлениепоиска направлениесортировки обновлениепредопределенныхданных обновлениеприизмененииданных ' +
'отображениепанелиразделов проверказаполнения режимдиалогавопрос режимзапускаклиентскогоприложения режимокругления режимоткрытияформприложения ' +
'режимполнотекстовогопоиска скоростьклиентскогосоединения состояниевнешнегоисточникаданных состояниеобновленияконфигурациибазыданных ' +
'способвыборасертификатаwindows способкодированиястроки статуссообщения типвнешнейкомпоненты типплатформы типповеденияклавишиenter ' +
'типэлементаинформацииовыполненииобновленияконфигурациибазыданных уровеньизоляциитранзакций хешфункция частидаты';
// class: встроенные наборы значений, системные перечисления (содержат дочерние значения, обращения к которым через разыменование)
var CLASS =
v8_system_sets_of_values +
v8_system_enums_interface +
v8_system_enums_objects_properties +
v8_system_enums_exchange_plans +
v8_system_enums_tabular_document +
v8_system_enums_sheduler +
v8_system_enums_formatted_document +
v8_system_enums_query +
v8_system_enums_report_builder +
v8_system_enums_files +
v8_system_enums_query_builder +
v8_system_enums_data_analysis +
v8_system_enums_xml_json_xs_dom_xdto_ws +
v8_system_enums_data_composition_system +
v8_system_enums_email +
v8_system_enums_logbook +
v8_system_enums_cryptography +
v8_system_enums_zip +
v8_system_enums_other +
v8_system_enums_request_schema +
v8_system_enums_properties_of_metadata_objects +
v8_system_enums_differents;
// v8 общие объекты (у объектов есть конструктор, экземпляры создаются методом НОВЫЙ) ==> type
var v8_shared_object =
'comобъект ftpсоединение httpзапрос httpсервисответ httpсоединение wsопределения wsпрокси xbase анализданных аннотацияxs ' +
'блокировкаданных буфердвоичныхданных включениеxs выражениекомпоновкиданных генераторслучайныхчисел географическаясхема ' +
'географическиекоординаты графическаясхема группамоделиxs данныерасшифровкикомпоновкиданных двоичныеданные дендрограмма ' +
'диаграмма диаграммаганта диалогвыборафайла диалогвыборацвета диалогвыборашрифта диалограсписаниярегламентногозадания ' +
'диалогредактированиястандартногопериода диапазон документdom документhtml документацияxs доставляемоеуведомление ' +
аписьdom записьfastinfoset записьhtml записьjson записьxml записьzipфайла записьданных записьтекста записьузловdom ' +
'запрос защищенноесоединениеopenssl значенияполейрасшифровкикомпоновкиданных извлечениетекста импортxs интернетпочта ' +
'интернетпочтовоесообщение интернетпочтовыйпрофиль интернетпрокси интернетсоединение информациядляприложенияxs ' +
спользованиеатрибутаxs использованиесобытияжурналарегистрации источникдоступныхнастроеккомпоновкиданных ' +
'итераторузловdom картинка квалификаторыдаты квалификаторыдвоичныхданных квалификаторыстроки квалификаторычисла ' +
'компоновщикмакетакомпоновкиданных компоновщикнастроеккомпоновкиданных конструктормакетаоформлениякомпоновкиданных ' +
'конструкторнастроеккомпоновкиданных конструкторформатнойстроки линия макеткомпоновкиданных макетобластикомпоновкиданных ' +
'макетоформлениякомпоновкиданных маскаxs менеджеркриптографии наборсхемxml настройкикомпоновкиданных настройкисериализацииjson ' +
'обработкакартинок обработкарасшифровкикомпоновкиданных обходдереваdom объявлениеатрибутаxs объявлениенотацииxs ' +
'объявлениеэлементаxs описаниеиспользованиясобытиядоступжурналарегистрации ' +
'описаниеиспользованиясобытияотказвдоступежурналарегистрации описаниеобработкирасшифровкикомпоновкиданных ' +
'описаниепередаваемогофайла описаниетипов определениегруппыатрибутовxs определениегруппымоделиxs ' +
'определениеограниченияидентичностиxs определениепростоготипаxs определениесоставноготипаxs определениетипадокументаdom ' +
'определенияxpathxs отборкомпоновкиданных пакетотображаемыхдокументов параметрвыбора параметркомпоновкиданных ' +
'параметрызаписиjson параметрызаписиxml параметрычтенияxml переопределениеxs планировщик полеанализаданных ' +
'полекомпоновкиданных построительdom построительзапроса построительотчета построительотчетаанализаданных ' +
'построительсхемxml поток потоквпамяти почта почтовоесообщение преобразованиеxsl преобразованиекканоническомуxml ' +
'процессорвыводарезультатакомпоновкиданныхвколлекциюзначений процессорвыводарезультатакомпоновкиданныхвтабличныйдокумент ' +
'процессоркомпоновкиданных разыменовательпространствименdom рамка расписаниерегламентногозадания расширенноеимяxml ' +
'результатчтенияданных своднаядиаграмма связьпараметравыбора связьпотипу связьпотипукомпоновкиданных сериализаторxdto ' +
'сертификатклиентаwindows сертификатклиентафайл сертификаткриптографии сертификатыудостоверяющихцентровwindows ' +
'сертификатыудостоверяющихцентровфайл сжатиеданных системнаяинформация сообщениепользователю сочетаниеклавиш ' +
'сравнениезначений стандартнаядатаначала стандартныйпериод схемаxml схемакомпоновкиданных табличныйдокумент ' +
'текстовыйдокумент тестируемоеприложение типданныхxml уникальныйидентификатор фабрикаxdto файл файловыйпоток ' +
асетдлиныxs фасетколичестваразрядовдробнойчастиxs фасетмаксимальноговключающегозначенияxs ' +
асетмаксимальногоисключающегозначенияxs фасетмаксимальнойдлиныxs фасетминимальноговключающегозначенияxs ' +
асетминимальногоисключающегозначенияxs фасетминимальнойдлиныxs фасетобразцаxs фасетобщегоколичестваразрядовxs ' +
асетперечисленияxs фасетпробельныхсимволовxs фильтрузловdom форматированнаястрока форматированныйдокумент ' +
рагментxs хешированиеданных хранилищезначения цвет чтениеfastinfoset чтениеhtml чтениеjson чтениеxml чтениеzipфайла ' +
'чтениеданных чтениетекста чтениеузловdom шрифт элементрезультатакомпоновкиданных ';
// v8 универсальные коллекции значений ==> type
var v8_universal_collection =
'comsafearray деревозначений массив соответствие списокзначений структура таблицазначений фиксированнаяструктура ' +
'фиксированноесоответствие фиксированныймассив ';
// type : встроенные типы
var TYPE =
v8_shared_object +
v8_universal_collection;
// literal : примитивные типы
var LITERAL = 'null истина ложь неопределено';
// number : числа
var NUMBERS = hljs.inherit(hljs.NUMBER_MODE);
// string : строки
var STRINGS = {
className: 'string',
begin: '\\|', end: '"|$',
contains: [DQUOTE]
begin: '"|\\|', end: '"|$',
contains: [{begin: '""'}]
};
// number : даты
var DATE = {
begin: "'", end: "'", excludeBegin: true, excludeEnd: true,
contains: [
{
className: 'number',
begin: '\\d{4}([\\.\\\\/:-]?\\d{2}){0,5}'
}
]
};
// comment : комментарии
var COMMENTS = hljs.inherit(hljs.C_LINE_COMMENT_MODE);
// meta : инструкции препроцессора, директивы компиляции
var META = {
className: 'meta',
lexemes: UNDERSCORE_IDENT_RE,
begin: '#|&', end: '$',
keywords: {'meta-keyword': KEYWORD + METAKEYWORD},
contains: [
COMMENTS
]
};
// symbol : метка goto
var SYMBOL = {
className: 'symbol',
begin: '~', end: ';|:', excludeEnd: true
};
// function : объявление процедур и функций
var FUNCTION = {
className: 'function',
lexemes: UNDERSCORE_IDENT_RE,
variants: [
{begin: 'процедура|функция', end: '\\)', keywords: 'процедура функция'},
{begin: 'конецпроцедуры|конецфункции', keywords: 'конецпроцедуры конецфункции'}
],
contains: [
{
begin: '\\(', end: '\\)', endsParent : true,
contains: [
{
className: 'params',
lexemes: UNDERSCORE_IDENT_RE,
begin: UNDERSCORE_IDENT_RE, end: ',', excludeEnd: true, endsWithParent: true,
keywords: {
keyword: 'знач',
literal: LITERAL
},
contains: [
NUMBERS,
STRINGS,
DATE
]
},
COMMENTS
]
},
hljs.inherit(hljs.TITLE_MODE, {begin: UNDERSCORE_IDENT_RE})
]
};
return {
case_insensitive: true,
lexemes: IDENT_RE_RU,
keywords: {keyword: OneS_KEYWORDS, built_in: OneS_BUILT_IN},
lexemes: UNDERSCORE_IDENT_RE,
keywords: {
keyword: KEYWORD,
built_in: BUILTIN,
class: CLASS,
type: TYPE,
literal: LITERAL
},
contains: [
hljs.C_LINE_COMMENT_MODE,
hljs.NUMBER_MODE,
STR_START, STR_CONT,
{
className: 'function',
begin: '(процедура|функция)', end: '$',
lexemes: IDENT_RE_RU,
keywords: 'процедура функция',
contains: [
{
begin: 'экспорт', endsWithParent: true,
lexemes: IDENT_RE_RU,
keywords: 'экспорт',
contains: [hljs.C_LINE_COMMENT_MODE]
},
{
className: 'params',
begin: '\\(', end: '\\)',
lexemes: IDENT_RE_RU,
keywords: 'знач',
contains: [STR_START, STR_CONT]
},
hljs.C_LINE_COMMENT_MODE,
hljs.inherit(hljs.TITLE_MODE, {begin: IDENT_RE_RU})
]
},
{className: 'meta', begin: '#', end: '$'},
{className: 'number', begin: '\'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})\''} // date
]
};
META,
FUNCTION,
COMMENTS,
SYMBOL,
NUMBERS,
STRINGS,
DATE
]
}
};

View File

@ -91,7 +91,8 @@ module.exports = function (hljs) {
contains : [
{
begin : hljs.UNDERSCORE_IDENT_RE + '\\s*\\(',
keywords : KEYWORDS + ' ' + SHORTKEYS
keywords : KEYWORDS + ' ' + SHORTKEYS,
relevance: 0
},
hljs.QUOTE_STRING_MODE
]

View File

@ -1,12 +1,13 @@
module.exports = function(hljs) {
var BACKTICK_ESCAPE = {
begin: /`[\s\S]/
begin: '`[\\s\\S]'
};
return {
case_insensitive: true,
aliases: [ 'ahk' ],
keywords: {
keyword: 'Break Continue Else Gosub If Loop Return While',
keyword: 'Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group',
literal: 'A|0 true false NOT AND OR',
built_in: 'ComSpec Clipboard ClipboardAll ErrorLevel',
},
@ -18,16 +19,26 @@ module.exports = function(hljs) {
BACKTICK_ESCAPE,
hljs.inherit(hljs.QUOTE_STRING_MODE, {contains: [BACKTICK_ESCAPE]}),
hljs.COMMENT(';', '$', {relevance: 0}),
hljs.C_BLOCK_COMMENT_MODE,
{
className: 'number',
begin: hljs.NUMBER_RE,
relevance: 0
},
{
className: 'variable', // FIXME
begin: '%', end: '%',
illegal: '\\n',
contains: [BACKTICK_ESCAPE]
className: 'subst', // FIXED
begin: '%(?=[a-zA-Z0-9#_$@])', end: '%',
illegal: '[^a-zA-Z0-9#_$@]'
},
{
className: 'built_in',
begin: '^\\s*\\w+\\s*,'
//I don't really know if this is totally relevant
},
{
className: 'meta',
begin: '^\\s*#\w+', end:'$',
relevance: 0
},
{
className: 'symbol',

View File

@ -26,7 +26,7 @@ module.exports = function(hljs) {
return {
aliases: ['sh', 'zsh'],
lexemes: /-?[a-z\._]+/,
lexemes: /\b-?[a-z\._]+\b/,
keywords: {
keyword:
'if then else elif fi for while in do done case esac function',

View File

@ -85,6 +85,7 @@ module.exports = function(hljs) {
LIST.contains = [hljs.COMMENT('comment', ''), NAME, BODY];
BODY.contains = DEFAULT_CONTAINS;
COLLECTION.contains = DEFAULT_CONTAINS;
HINT_COL.contains = [COLLECTION];
return {
aliases: ['clj'],

View File

@ -27,7 +27,7 @@ module.exports = function(hljs) {
className: 'number',
variants: [
{ begin: '\\b(0b[01\']+)' },
{ begin: '\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
{ begin: '(-?)\\b([\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)(u|U|l|L|ul|UL|f|F|b|B)' },
{ begin: '(-?)(\\b0[xX][a-fA-F0-9\']+|(\\b[\\d\']+(\\.[\\d\']*)?|\\.[\\d\']+)([eE][-+]?[\\d\']+)?)' }
],
relevance: 0
@ -48,7 +48,7 @@ module.exports = function(hljs) {
hljs.inherit(STRINGS, {className: 'meta-string'}),
{
className: 'meta-string',
begin: '<', end: '>',
begin: /<[^\n>]*>/, end: /$/,
illegal: '\\n',
},
hljs.C_LINE_COMMENT_MODE,
@ -60,15 +60,16 @@ module.exports = function(hljs) {
var CPP_KEYWORDS = {
keyword: 'int float while private char catch import module export virtual operator sizeof ' +
'dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace ' +
'dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace ' +
'unsigned long volatile static protected bool template mutable if public friend ' +
'do goto auto void enum else break extern using class asm case typeid ' +
'do goto auto void enum else break extern using asm case typeid ' +
'short reinterpret_cast|10 default double register explicit signed typename try this ' +
'switch continue inline delete alignof constexpr decltype ' +
'noexcept static_assert thread_local restrict _Bool complex _Complex _Imaginary ' +
'atomic_bool atomic_char atomic_schar ' +
'atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong ' +
'atomic_ullong new throw return',
'atomic_ullong new throw return ' +
'and or not',
built_in: 'std string cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream ' +
'auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set ' +
'unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos ' +
@ -154,6 +155,14 @@ module.exports = function(hljs) {
hljs.C_BLOCK_COMMENT_MODE,
PREPROCESSOR
]
},
{
className: 'class',
beginKeywords: 'class struct', end: /[{;:]/,
contains: [
{begin: /</, end: />/, contains: ['self']}, // skip generic stuff
hljs.TITLE_MODE
]
}
]),
exports: {

View File

@ -6,10 +6,10 @@ module.exports = function(hljs) {
var CRYSTAL_METHOD_RE = '[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\][=?]?';
var CRYSTAL_KEYWORDS = {
keyword:
'abstract alias as asm begin break case class def do else elsif end ensure enum extend for fun if ifdef ' +
'include instance_sizeof is_a? lib macro module next of out pointerof private protected rescue responds_to? ' +
'return require self sizeof struct super then type typeof union unless until when while with yield ' +
'__DIR__ __FILE__ __LINE__',
'abstract alias as as? asm begin break case class def do else elsif end ensure enum extend for fun if ' +
'include instance_sizeof is_a? lib macro module next nil? of out pointerof private protected rescue responds_to? ' +
'return require select self sizeof struct super then type typeof union uninitialized unless until when while with yield ' +
'__DIR__ __END_LINE__ __FILE__ __LINE__',
literal: 'false nil true'
};
var SUBST = {
@ -47,6 +47,22 @@ module.exports = function(hljs) {
{begin: '%w?%', end: '%'},
{begin: '%w?-', end: '-'},
{begin: '%w?\\|', end: '\\|'},
{begin: /<<-\w+$/, end: /^\s*\w+$/},
],
relevance: 0,
};
var Q_STRING = {
className: 'string',
variants: [
{begin: '%q\\(', end: '\\)', contains: recursiveParen('\\(', '\\)')},
{begin: '%q\\[', end: '\\]', contains: recursiveParen('\\[', '\\]')},
{begin: '%q{', end: '}', contains: recursiveParen('{', '}')},
{begin: '%q<', end: '>', contains: recursiveParen('<', '>')},
{begin: '%q/', end: '/'},
{begin: '%q%', end: '%'},
{begin: '%q-', end: '-'},
{begin: '%q\\|', end: '\\|'},
{begin: /<<-'\w+'$/, end: /^\s*\w+$/},
],
relevance: 0,
};
@ -97,6 +113,7 @@ module.exports = function(hljs) {
var CRYSTAL_DEFAULT_CONTAINS = [
EXPANSION,
STRING,
Q_STRING,
REGEXP,
REGEXP2,
ATTRIBUTE,

Some files were not shown because too many files have changed in this diff Show More