GithubHelp home page GithubHelp logo

kubermatic / docs Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 104.0 182.54 MB

Documentation for Kubermatic projects

Home Page: https://docs.kubermatic.com/

License: Other

CSS 4.34% HTML 21.18% JavaScript 5.03% Makefile 0.32% Shell 2.74% Dockerfile 0.08% Go 21.52% SCSS 44.28% Smarty 0.51%

docs's Introduction

last stable release go report card godoc

Overview / User Guides

Kubermatic Kubernetes Platform is in an open source project to centrally manage the global automation of thousands of Kubernetes clusters across multicloud, on-prem and edge with unparalleled density and resilience.

All user documentation is available at the Kubermatic Kubernetes Platform docs website.

Editions

There are two editions of Kubermatic Kubernetes Platform:

Kubermatic Kubernetes Platform Community Edition (CE) is available freely under the Apache License, Version 2.0. Kubermatic Kubernetes Platform Enterprise Edition (EE) includes premium features that are most useful for organizations with large-scale Kubernetes installations with more than 50 clusters. To access the Enterprise Edition and get official support please become a subscriber.

Licensing

See the LICENSE file for licensing information as it pertains to files in this repository.

Installation

We strongly recommend that you use an official release of Kubermatic Kubernetes Platform. Follow the instructions under the Installation section of our documentation to get started.

The code and sample YAML files in the main branch of the kubermatic repository are under active development and are not guaranteed to be stable. Use them at your own risk!

More information

The documentation provides a getting started guide, plus information about building from source, architecture, extending kubermatic, and more.

Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of kubermatic.

Troubleshooting

If you encounter issues file an issue or talk to us on the #kubermatic channel on the Kubermatic Community Slack (click here to join).

Contributing

Thanks for taking the time to join our community and start contributing!

Before you start

  • Please familiarize yourself with the Code of Conduct before contributing.
  • See CONTRIBUTING.md for instructions on the developer certificate of origin that we require.

Repository layout

├── addons    # Default Kubernetes addons
├── charts    # The Helm charts we use to deploy
├── cmd       # Various Kubermatic binaries for the controller-managers, operator etc.
├── codegen   # Helper programs to generate Go code and Helm charts
├── docs      # Some basic developer-oriented documentation
├── hack      # scripts for development and CI
└── pkg       # most of the actual codebase

Development environment

git clone [email protected]:kubermatic/kubermatic.git
cd kubermatic

There are a couple of scripts in the hacks directory to aid in running the components locally for testing purposes.

Running components locally

user-cluster-controller-manager

In order to instrument the seed-controller to allow for a local user-cluster-controller-manager, you need to add a worker-name label with your local machine's name as its value. Additionally, you need to scale down the already running deployment.

# Using a kubeconfig, which points to the seed-cluster
export cluster_id="<id-of-your-user-cluster>"
kubectl label cluster ${cluster_id} worker-name=$(uname -n)
kubectl scale deployment -n cluster-${cluster_id} usercluster-controller --replicas=0

Afterwards, you can start your local user-cluster-controller-manager.

# Using a kubeconfig, which points to the seed-cluster
./hack/run-user-cluster-controller-manager.sh
seed-controller-manager
./hack/run-seed-controller-manager.sh
master-controller-manager
./hack/run-master-controller-manager.sh

Run linters

Before every push, make sure you run:

make lint

Run tests

make test

Update code generation

The Kubernetes code-generator tool does not work outside of GOPATH (upstream issue), so the script below will automatically run the code generation in a Docker container.

hack/update-codegen.sh

Pull requests

  • We welcome pull requests. Feel free to dig through the issues and jump in.

Changelog

See the list of releases to find out about feature changes.

docs's People

Contributors

ahmedwaleedmalik avatar alster-wasser avatar alvaroaleman avatar archups avatar csengerszabo avatar dependabot[bot] avatar embik avatar fairhaven avatar hdurand0710 avatar jiachengxu avatar kdomanski avatar krissiwi avatar kron4eg avatar kubermatic-bot avatar lsviben avatar mate4st avatar moadqassem avatar mrincompetent avatar naveendeftsoft avatar rastislavs avatar scheeles avatar serg avatar simontheleg avatar toschneck avatar vgramer avatar waseem826 avatar wurbanski avatar xmudrii avatar xrstf avatar zreigz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

docs's Issues

Document requirements for AWS APC usage

When using non-default VPC:

  • Private and public networks have to be created (including gateway and routes)
  • At least public network has to be tagged for LB usage (kubernetes.io/role/elb)

Little introduction for install section missing

The install kubermatic section starts a bit abrupt. The helm lines for installing the charts reference some manifests in some charts/ directory. Personally I just used config/ directory from the respective branch of the kubermatic git repository. But this could be made explicit (starting with a downloaded zip file from releases, or git, or xyz).

Customers have less context and are less willing to guess.

Document RBAC generator functionality

Currently for a user it is hard to understand how our user management reflect in the user cluster RBAC. At least in combination with OIDC share cluster function it's hard to understand what's happen. To avoid questions from customers we should describe the following points in our documentation:

  • How can user manage cluster permissions
  • How does the RBAC generator reflect this inside of the user cluster
  • What different roles(groups) and permission do they have to resources in our system
  • How dos the OIDC share cluster option defer

I think we could create therefor a chapter in the Architecture section. In OIDC share cluster](https://docs.kubermatic.io/advanced/oidc_auth/) section we should mention the basic concept as well.

cc @p0lyn0mial @kron4eg feel free to add your thoughts ;-)

Update CNI upgrade note to older version

After discovering the upgrade issue when upgrading from 2.11 to 2.12 with Flannel and Network Policy being used, this PR has been created: #379

It needs now to be applied to 2.14, 2.13, 2.12 documentation versions.

Update to Hugo v0.44

  • Check if docs theme is compatible with latest hugo release v0.44
  • Update Netflify Build Pipeline

Document the deprecation of `datacenters.yaml`

In Kubermatic v2.15 we will deprecate datacenter configuration through datacenters.yaml, and then remove it entirely in Kubermatic v2.16.

For that purpose we must first update the documentation with the following:

  • in docs master ensure that all documentation related to datacenters is based on CRDs and not datacenters.yaml
  • ensure migration of Kubermatic installations from datacenter.yaml to CRD-based DCs is documented (if necessary)
  • in docs master add warning boxes whenever datacenters are mentioned:
    • informing about the deprecation of datacenter.yaml in v2.15
    • informing about the removal of datacenter.yaml in v2.16
    • with a link to the migration guide

Fix master installer documentation

Documentation for master branch should be updated similarly to what we already did for v2.14.

For instance we should:

  • Add the step to install cert-manager CRDs that have been extracted from the Helm chart.

  • Show how to download latest weekly tarball instead of the latest release that points to latest release branch (currently 2.14)

Add support for tabs

It would be very useful to have support for tabs, so we can easily split the content without having to create additional pages. The Kubernetes docs website has this feature and they use it a lot. For example https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/install-kubeadm/#installing-kubeadm-kubelet-and-kubectl

image

Here's the markdown source of the mentioned document which shows how they use it https://raw.githubusercontent.com/kubernetes/website/master/content/en/docs/setup/production-environment/tools/kubeadm/install-kubeadm.md

I've also found the source for those shortcodes:

Porting those shortcodes doesn't work out of the box, so some additional modifications are needed to make them work with our template.

Document VSphere reboot issue

Document the reboot issues when using vSphere.

Result of kubermatic/kubermatic#1571

From the original issue:

When using a vsphere seed and rebooting a node that runs one or more pods with attached PVs, that > node can not be started anymore because the cloud provider does not remove the volume binding from > the old node even thought the pod will get rescheduled to another node.

This then means that the vsphere instance can not be started anymore until an operator manually > > > removes the binding to the node inside vsphere.

Upstream issue: kubernetes/kubernetes#63577

This issue will be resolved with kubernetes 1.12: kubernetes/kubernetes#63413 (comment)

Document the subnet auto-selection in AWS

A new section is necessary, that will document the behavior of MachineDeployments on AWS in absence of a specified subnet. AWS will select the default subnet in a given VPC/AZ and the user needs to understand that.

AWS IAM permissions for LB creation incomplete

According to customer feedback, the following permissions are missing:

  elasticloadbalancing:DescribeLoadBalancerAttributes
  elasticloadbalancing:DescribeLoadBalancers
  elasticloadbalancing:CreateLoadBalancer
  elasticloadbalancing:AttachLoadBalancerToSubnets
  elasticloadbalancing:RegisterInstancesWithLoadBalancer
  elasticloadbalancing:ConfigureHealthCheck
  elasticloadbalancing:DeleteLoadBalancer
  elasticloadbalancing:ModifyLoadBalancerAttributes

Document migration from v2.13 to v2.14

Document migration steps from v2.13 to v2.14. Particular care should be dedicated to the nodeport proxy that should move from Helm chart based installation to operator based.

Document Setup and Usage of kubevirt CloudProvider

Besides this small readme we don't have any proper documentation how to use the kubevirt cloudprovider.

For testing e.g. i used the following images

documented AWS policy is not working

I created a new AWS policy in the cloudifire AWS account and figured that documented AWS policy won't work: https://docs.kubermatic.io/requirements/cloud_provider/_aws/
Maybe this policy is just for the seed cluster? If so we should add least what (minimum) policies the cluster creator user should have to our docu.

The policy I extracted from loodse account of the group cluster-creator are:

AmazonEC2FullAccess
IAMFullAccess

Then the cluster will come up, but this roles are may to open. @pkavajin please check this in our testing setup also.
Also the cloudifire thoughts are helpful https://github.com/CloudiFire/caas/issues/42

Document how to install with Helm3

The current installation documentation relies on Helm2, the goal of this issue is to document the installation with Helm3 that is supposed to work already.

Create a Overview documentation

Create and overview and architecture docu for users:

Let's start with the following topics:

Examples for similar documentations are:
http://docs.rancher.com/rancher/v1.3/en/
https://dcos.io/docs/1.8/overview/
https://docs.docker.com/datacenter/ucp/2.0/guides/

Improve Vsphere Permission docs

add the output of govc tool to it. see output of @chrkl

 govc role.ls cus_seed_k8c-storage-vmfolder-propagate
Folder.Create
Folder.Delete
System.Anonymous
System.Read
System.View
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.RemoveDisk
[kleineweber@ck-mbp ~] govc role.ls cus_seed_k8c-storage-datastore-propagate
Datastore.AllocateSpace
Datastore.FileManagement
System.Anonymous
System.Read
System.View
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8c-user-vcenter
System.Anonymous
System.Read
System.View
VirtualMachine.Provisioning.ModifyCustSpecs
VirtualMachine.Provisioning.ReadCustSpecs
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8c-user-datacenter
Datastore.AllocateSpace
Datastore.Browse
Datastore.DeleteFile
Datastore.FileManagement
System.Anonymous
System.Read
System.View
VApp.ApplicationConfig
VApp.InstanceConfig
VirtualMachine.Config.CPUCount
VirtualMachine.Config.Memory
VirtualMachine.Config.Settings
VirtualMachine.Inventory.CreateFromExisting
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8c-user-cluster-propagate
Host.Config.SystemManagement
Host.Local.ReconfigVM
Resource.AssignVMToPool
Resource.ColdMigrate
Resource.HotMigrate
System.Anonymous
System.Read
System.View
VApp.ApplicationConfig
VApp.InstanceConfig
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8s-network-attach
Network.Assign
System.Anonymous
System.Read
System.View
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8c-user-datastore-propagate
Datastore.AllocateSpace
Datastore.Browse
Datastore.FileManagement
System.Anonymous
System.Read
System.View
[kleineweber@ck-mbp ~] govc role.ls cus_user_k8c-user-folder-propagate
Folder.Create
Folder.Delete
Global.SetCustomField
System.Anonymous
System.Read
System.View
VirtualMachine.Config.AddExistingDisk
VirtualMachine.Config.AddNewDisk
VirtualMachine.Config.AddRemoveDevice
VirtualMachine.Config.AdvancedConfig
VirtualMachine.Config.Annotation
VirtualMachine.Config.CPUCount
VirtualMachine.Config.ChangeTracking
VirtualMachine.Config.DiskExtend
VirtualMachine.Config.DiskLease
VirtualMachine.Config.EditDevice
VirtualMachine.Config.HostUSBDevice
VirtualMachine.Config.ManagedBy
VirtualMachine.Config.Memory
VirtualMachine.Config.MksControl
VirtualMachine.Config.QueryFTCompatibility
VirtualMachine.Config.QueryUnownedFiles
VirtualMachine.Config.RawDevice
VirtualMachine.Config.ReloadFromPath
VirtualMachine.Config.RemoveDisk
VirtualMachine.Config.Rename
VirtualMachine.Config.ResetGuestInfo
VirtualMachine.Config.Resource
VirtualMachine.Config.Settings
VirtualMachine.Config.SwapPlacement
VirtualMachine.Config.ToggleForkParent
VirtualMachine.Config.UpgradeVirtualHardware
VirtualMachine.GuestOperations.Execute
VirtualMachine.GuestOperations.Modify
VirtualMachine.GuestOperations.ModifyAliases
VirtualMachine.GuestOperations.Query
VirtualMachine.GuestOperations.QueryAliases
VirtualMachine.Interact.AnswerQuestion
VirtualMachine.Interact.Backup
VirtualMachine.Interact.ConsoleInteract
VirtualMachine.Interact.CreateScreenshot
VirtualMachine.Interact.CreateSecondary
VirtualMachine.Interact.DefragmentAllDisks
VirtualMachine.Interact.DeviceConnection
VirtualMachine.Interact.DisableSecondary
VirtualMachine.Interact.DnD
VirtualMachine.Interact.EnableSecondary
VirtualMachine.Interact.GuestControl
VirtualMachine.Interact.MakePrimary
VirtualMachine.Interact.Pause
VirtualMachine.Interact.PowerOff
VirtualMachine.Interact.PowerOn
VirtualMachine.Interact.PutUsbScanCodes
VirtualMachine.Interact.Record
VirtualMachine.Interact.Replay
VirtualMachine.Interact.Reset
VirtualMachine.Interact.SESparseMaintenance
VirtualMachine.Interact.SetCDMedia
VirtualMachine.Interact.SetFloppyMedia
VirtualMachine.Interact.Suspend
VirtualMachine.Interact.TerminateFaultTolerantVM
VirtualMachine.Interact.ToolsInstall
VirtualMachine.Interact.TurnOffFaultTolerance
VirtualMachine.Inventory.Create
VirtualMachine.Inventory.CreateFromExisting
VirtualMachine.Inventory.Delete
VirtualMachine.Inventory.Move
VirtualMachine.Inventory.Register
VirtualMachine.Inventory.Unregister
VirtualMachine.Provisioning.Clone
VirtualMachine.Provisioning.CloneTemplate
VirtualMachine.Provisioning.CreateTemplateFromVM
VirtualMachine.Provisioning.Customize
VirtualMachine.Provisioning.DeployTemplate
VirtualMachine.Provisioning.DiskRandomAccess
VirtualMachine.Provisioning.DiskRandomRead
VirtualMachine.Provisioning.FileRandomAccess
VirtualMachine.Provisioning.GetVmFiles
VirtualMachine.Provisioning.MarkAsTemplate
VirtualMachine.Provisioning.MarkAsVM
VirtualMachine.Provisioning.ModifyCustSpecs
VirtualMachine.Provisioning.PromoteDisks
VirtualMachine.Provisioning.PutVmFiles
VirtualMachine.Provisioning.ReadCustSpecs

Document cluster deletion caveat

Relevant discussion from slack:

Regarding the long kubectl delete cluster xxxxx call, @artiom mentioned.
The latest versions of kubectl use PropagationPolicy: foreground which lets kubectl wait until the object is deleted.
This policy also lets to the GarbageCollector delete dependents before the Owner is deleted (For example: etcd StatefulSets).
This leads to a broken state, as we require the etcd to cleanup machines (for which we use a finalizer on the cluster).

When you need to use kubectl delete cluster, please add the flag --cascade=false.
This will make the GarbageCollector wait until the owner is gone. So we can do the machine-cleanup

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.