github.com/apprenda/kismatic@v1.12.0/integration-tests/plan_patterns.go (about)

     1  package integration_tests
     2  
     3  type NFSVolume struct {
     4  	Host string
     5  }
     6  
     7  type PlanAWS struct {
     8  	Etcd                         []NodeDeets
     9  	Master                       []NodeDeets
    10  	Worker                       []NodeDeets
    11  	Ingress                      []NodeDeets
    12  	Storage                      []NodeDeets
    13  	NFSVolume                    []NFSVolume
    14  	LoadBalancer                 string
    15  	SSHUser                      string
    16  	SSHKeyFile                   string
    17  	HomeDirectory                string
    18  	DisablePackageInstallation   bool
    19  	DisableDockerInstallation    bool
    20  	DisconnectedInstallation     bool
    21  	DockerRegistryServer         string
    22  	DockerRegistryCAPath         string
    23  	DockerRegistryUsername       string
    24  	DockerRegistryPassword       string
    25  	ModifyHostsFiles             bool
    26  	HTTPProxy                    string
    27  	HTTPSProxy                   string
    28  	NoProxy                      string
    29  	DockerStorageDriver          string
    30  	ServiceCIDR                  string
    31  	DisableCNI                   bool
    32  	CNIProvider                  string
    33  	DNSProvider                  string
    34  	DisableHelm                  bool
    35  	HeapsterReplicas             int
    36  	HeapsterInfluxdbPVC          string
    37  	CloudProvider                string
    38  	KubeAPIServerOptions         map[string]string
    39  	KubeControllerManagerOptions map[string]string
    40  	KubeSchedulerOptions         map[string]string
    41  	KubeProxyOptions             map[string]string
    42  	KubeletOptions               map[string]string
    43  }
    44  
    45  // Certain fields are still present for backwards compatabilty when testing upgrades
    46  const planAWSOverlay = `cluster:
    47    name: kubernetes
    48    disable_package_installation: {{.DisablePackageInstallation}}
    49    disconnected_installation: {{.DisconnectedInstallation}}
    50    networking:
    51      type: overlay                                                 # Required for KET <= v1.4.1
    52      pod_cidr_block: 172.16.0.0/16
    53      service_cidr_block: {{if .ServiceCIDR}}{{.ServiceCIDR}}{{else}}172.20.0.0/16{{end}}
    54      update_hosts_files: {{.ModifyHostsFiles}}
    55      http_proxy: {{.HTTPProxy}}
    56      https_proxy: {{.HTTPSProxy}}
    57      no_proxy: {{.NoProxy}}
    58    certificates:
    59      expiry: 17520h
    60      ca_expiry: 17520h
    61    ssh:
    62      user: {{.SSHUser}}
    63      ssh_key: {{.SSHKeyFile}}
    64      ssh_port: 22
    65    kube_apiserver:
    66      option_overrides: { {{ if .KubeAPIServerOptions }}{{ range $k, $v := .KubeAPIServerOptions }}"{{ $k }}": "{{ $v }}"{{end}}{{end}} }
    67    kube_controller_manager:
    68      option_overrides: { {{if .KubeControllerManagerOptions}}{{ range $k, $v := .KubeControllerManagerOptions }}"{{ $k }}": "{{ $v }}"{{end}}{{end}} }
    69    kube_scheduler: 
    70      option_overrides: { {{if .KubeSchedulerOptions}}{{ range $k, $v := .KubeSchedulerOptions }}"{{ $k }}": "{{ $v }}"{{end}}{{end}} }
    71    kube_proxy: 
    72      option_overrides: { {{if .KubeProxyOptions}}{{ range $k, $v := .KubeProxyOptions }}"{{ $k }}": "{{ $v }}"{{end}}{{end}} }
    73    kubelet: 
    74      option_overrides: { {{if .KubeletOptions}}{{ range $k, $v := .KubeletOptions }}"{{ $k }}": "{{ $v }}"{{end}}{{end}} }
    75    cloud_provider:
    76      provider: {{.CloudProvider}}
    77  docker:
    78    disable: {{.DisableDockerInstallation}}
    79    storage:
    80      driver: "{{.DockerStorageDriver}}"
    81      opts: {}
    82      direct_lvm_block_device:
    83        path: {{if eq .DockerStorageDriver "devicemapper"}}"/dev/xvdb"{{end}}
    84        thinpool_percent: "95"
    85        thinpool_metapercent: "1"
    86        thinpool_autoextend_threshold: "80"
    87        thinpool_autoextend_percent: "20"
    88    logs:
    89      driver: "json-file"
    90      opts: 
    91        "max-size": "50m"
    92        "max-file": "1"
    93  docker_registry:
    94    server: {{.DockerRegistryServer}}
    95    CA: {{.DockerRegistryCAPath}}
    96    username: {{.DockerRegistryUsername}}
    97    password: {{.DockerRegistryPassword}}
    98  add_ons:
    99    cni:
   100      disable: {{.DisableCNI}}
   101      provider: {{if .CNIProvider}}{{.CNIProvider}}{{else}}calico{{end}}
   102      options:
   103        portmap:
   104          disable: false
   105        calico:
   106          mode: overlay
   107          log_level: info
   108          workload_mtu: 1500
   109          felix_input_mtu: 1440
   110          ip_autodetection_method: first-found
   111        weave:
   112          password: ""
   113    dns:
   114      disable: false
   115      provider: {{if .DNSProvider}}{{.DNSProvider}}{{else}}kubedns{{end}}
   116      options:
   117        replicas: 2
   118    heapster:
   119      disable: false
   120      options:
   121        heapster_replicas: {{if eq .HeapsterReplicas 0}}2{{else}}{{.HeapsterReplicas}}{{end}}
   122        heapster:
   123          replicas: {{if eq .HeapsterReplicas 0}}2{{else}}{{.HeapsterReplicas}}{{end}}
   124          service_type: ClusterIP
   125          sink: influxdb:http://heapster-influxdb.kube-system.svc:8086
   126        influxdb:
   127          pvc_name: {{.HeapsterInfluxdbPVC}}
   128    metrics_server:
   129      disable: false
   130    package_manager:
   131      disable: {{.DisableHelm}}
   132      provider: helm
   133    rescheduler:
   134      disable: false
   135  etcd:
   136    expected_count: {{len .Etcd}}
   137    nodes:{{range .Etcd}}
   138    - host: {{.Hostname}}
   139      ip: {{.PublicIP}}
   140      internalip: {{.PrivateIP}}{{end}}
   141  master:
   142    load_balancer: {{.LoadBalancer}}:6443
   143    load_balanced_fqdn: {{.LoadBalancer}} # TODO remove
   144    load_balanced_short_name: {{.LoadBalancer}}
   145    expected_count: {{len .Master}}
   146    nodes:{{range .Master}}
   147    - host: {{.Hostname}}
   148      ip: {{.PublicIP}}
   149      internalip: {{.PrivateIP}}
   150      labels:
   151        com.integrationtest/master: true{{end}}
   152  worker:
   153    expected_count: {{len .Worker}}
   154    nodes:{{range .Worker}}
   155    - host: {{.Hostname}}
   156      ip: {{.PublicIP}}
   157      internalip: {{.PrivateIP}}
   158      labels:
   159        com.integrationtest/worker: true{{end}}
   160  ingress:
   161    expected_count: {{len .Ingress}}
   162    nodes:{{range .Ingress}}
   163    - host: {{.Hostname}}
   164      ip: {{.PublicIP}}
   165      internalip: {{.PrivateIP}}
   166      labels:
   167        com.integrationtest/ingress: true{{end}}
   168  storage:
   169    expected_count: {{len .Storage}}
   170    nodes:{{range .Storage}}
   171    - host: {{.Hostname}}
   172      ip: {{.PublicIP}}
   173      internalip: {{.PrivateIP}}
   174      labels:
   175        com.integrationtest/storage: true{{end}}
   176  nfs:
   177    nfs_volume:{{range .NFSVolume}}
   178    - nfs_host: {{.Host}}
   179      mount_path: /{{end}}
   180  `