Giter Club home page Giter Club logo

doc-caasp's Introduction

SUSE CaaS Platform Documentation

Build Status

This is the source for the official SUSE CaaS Platform documentation

Released versions of the documentation will be published at https://documentation.suse.com/ once available.

Contributing

Important
Allow maintainer updates for pull requests
When creating a Pull Request please allow maintainers to push commits into your fork. See: https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork

If you would like to contribute, please fork this repository and send pull requests.

For help on style and structure, refer to the Documentation Styleguide

Branches

Important
Changes to already released versions of the documentation must be merged to a maintenance/CaaSX branch from the maintainer.

We maintain three versions of the product at this point:

  • master (ongoing 4.5.x work)

  • maintenance/CaaS4.5 (4.5.x released version and incremental updates)

  • maintenance/CaaS4 (4.2.x released version and incremental updates)

Files and Directory Structure

  • DC-caasp-*: Configuration files for the exported guides.

  • adoc/: Contains all the pages that make up the content.

  • adoc/book_*: Meta files collating pages into a guide document.

  • adoc/attributes.adoc - Contains all version numbers of the product and its components. Also contains the release_type flag that determines if the branch contains an public or (SUSE) internal release.

  • adoc/entities.adoc - Contains text substitutions for often used component names and strings.

  • adoc/common_*: Include files with common information like legal disclaimers and licenses.

  • adoc/admin-*: Pages belonging to the Admin guide.

  • adoc/deployment-*: Pages belonging to the Deployment guide.

  • adoc/architecture-*: Pages belonging to the Architecture guide.

  • adoc/quick-*: Pages belonging to the Quickstart guide.

Editing AsciiDoc

To contribute to the documentation you will use AsciiDoc syntax.

  • You can learn about AsciiDoc syntax at https://asciidoctor.org/docs/asciidoc-syntax-quick-reference/

    • A much more detailed manual can be found here

  • For simple preview use the browser extensions for

    • Chrome

    • Firefox

    • Make sure you set the "security" setting in the Extension Preferences to server

  • SUSE documents are generally built with DAPS (package daps) and the SUSE XSL Stylesheets (package suse-xsl-stylesheets). It’s available as a SUSE rpm package from the the SUSE repository Documentation:Tools or directly from Github.

  • If you are running a (recent) version of openSUSE, you can install our documentation toolchain with the following command: sudo /sbin/OneClickInstallUI https://gitlab.nue.suse.com/susedoc/doc-ymp/raw/master/Documentation.ymp

  • If you don’t want to download the entire documentation toolchain, you can also build documentation using DAPS inside a Docker container with daps2docker:

    • Clone the daps2docker repository.

    • Change directory to the folder which contains your documentation source files (doc-caasp).

    • Execute the daps2docker.sh file, for example by running ../daps2docker/daps2docker.sh ..

    • Follow the commandline instructions for further building options.

  • Basic daps usage:

    • $ daps -d DC-<YOUR_BOOK> validate: Make sure what you have written is well-formed XML and valid DocBook 5

    • $ daps -d DC-<YOUR_BOOK> pdf: Build a PDF document

    • $ daps -d DC-<YOUR_BOOK> html: Build multi-page HTML document

    • Learn more at https://opensuse.github.io/daps

doc-caasp's People

Contributors

bergmannf avatar c3y1huang avatar cclhsu avatar cjschroder avatar cmurphy avatar cwickert avatar danielorf avatar davidcassany avatar dmpop avatar ereslibre avatar evrardjp avatar flavio avatar fsundermeyer avatar inercia avatar jodavis-suse avatar jordimassaguerpla avatar jvanz avatar kravciak avatar lproven avatar lvicoun avatar maximilianmeister avatar mjura avatar mssola avatar nkoranova avatar r0ckarong avatar simonflood avatar spiarh avatar svenseeberg avatar thehejik avatar tomschr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

doc-caasp's Issues

Automatic Installation Using AutoYaST

4.4.3 Automatic Installation Using AutoYaST

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_deployment/book_caasp_deployment.html#sec.deploy.nodes.worker_install.manual.autoyast

The network setup in this section is confusing because it calls for netsetup for DHCP, but then points to the Advanced Network Setup section of Autoyast, which only references ifcfg.

ifcfg has more functionality and is preferred in the Autoyast documentation, so all references to netsetup should be replaced with ifcfg.

In addition, an example of the entire boot option line, based on using a static IP, should be given. For instance:
"For a static IP assignment, the Boot Option line will accept this syntax:
autoyast=http:///autoyast ifcfg=eth0=/,,, hostname=
For example:
autoyast=http://admin.my-caasp.com/autoyast ifcfg=eth0=192.168.100.11/24,192.168.100.1,192.168.100.2,my-caasp.com hostname=master1.my-caasp.com"

[doc] 3.1.4 Recovering From Failed Updates - feature

Be more verbose between step 1 and 2 since the salt-master can take some time to start. Also there is no word on how much time to wait between step 2 and 3.

Inform that step 2 might take several minutes so the user doesn't close the terminal before it finishes (there is no output for quite some time, no information about what is being done),

3.1.4 Recovering From Failed Updates

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_admin/book_caasp_admin.html#sec.admin.software.transactional-updates.recovering

[doc] Procedure&nbsp;7.2: Creating a Pod with RBD in Persistent Volume

Procedure 7.2: Creating a Pod with RBD in Persistent Volume

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_admin/book_caasp_admin.html#id-1.5.9.5.3

I was just walking through this section and setting up Persistent Volumes in CaaSP in my lab and as written with the yaml that includes:
monitors:
- [MONITOR1_IP:MONITOR1_PORT]
- [MONITOR2_IP:MONITOR2_PORT]
- [MONITOR3_IP:MONITOR3_PORT]

I removed 2 of the MONITOR entries and used this:
monitors:
- [MONITOR1_IP:MONITOR1_PORT]

And when I tried to apply that yaml I got this error:
kubectl apply -f ceph-create-persistent-vol.yaml
error: error converting YAML to JSON: yaml: line 12: found unexpected ':'

I changed the brackets to single quotes and it worked:
monitors:
- '192.168.0.184:6789'

kubectl apply -f ceph-create-persistent-vol.yaml
persistentvolume "bradpv" created

I assume something has changed in kubernetes that the brackets no longer work?

Update instructions for k8s dashboard namespace

[email protected] @ [email protected] on 2019-03-25:

In the Administration Guide, we recommand create kubernetes-dashboard
in the namespace of "kube-system", but missed in the "Get the
Kubernetes Dashboard URL by running" session.

So please add namespace to dashboad by changing

export NODE_PORT=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services kubernetes-dashboard)

to

export NODE_PORT=$(kubectl get -o jsonpath="{.spec.ports[0].nodePort}" services kubernetes-dashboard --namespace=kube-system)

Create Quickstart for vNext

Acceptance Criteria

  • Describe deployment scenario
  • Which platform
  • How many nodes
  • How are the nodes meant to interact
  • Describe how to deploy and configure vNext nodes on a SLE level with the preferred method
  • Describe which packages to install to prepare for CaaSP deployment
  • Describe how to configure networking and what needs to be considered
  • Describe how to deploy CaaSP vNext software to the nodes
  • Describe how to bootstrap the cluster

https://confluence.suse.de/display/SUSECaaSPlatform4/Quick+start+guide+on+deploying+vNext

[doc] 8.5 Locking Installed Program Temporary Fixes

8.5 Locking Installed Program Temporary Fixes

http://docserv.suse.de/documents/CaaS_Platform_3/caasp-admin/single-html/#sec.admin.troubleshooting.velum_ptf

There is a problem that the comand to install PTF do not work:
On run of:

  1. Install the PTF manually.
    root: transactional-update reboot PTF_FILE.rpm install

I do get
transactional-update reboot *.rpm install
Usage: transactional-update --help|--version
transactional-update [--no-selfupdate] [cleanup][up|dup|patch|initrd][kdump][reboot]
transactional-update [--no-selfupdate] [cleanup] [reboot] pkg install|remove|update PKG1..PKGN
transactional-update [--no-selfupdate] migration
transactional-update [--no-selfupdate] register -p [-r ]
transactional-update rollback [number]

But I can run:
transactional-update pkg install TESTrpm

So this have to be changed in my opinion.

transactional-update pkg install PTFrpm

[doc] Procedure&nbsp;2.9: Pull Data From Upstream Sources

Procedure 2.9: Pull Data From Upstream Sources

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_deployment/book_caasp_deployment.html#id-1.4.4.3.12.4


When I follow these instructions I get this output of helm-mirror:

helm-mirror inspect-images /srv/www/htdocs/kubernetes-charts.suse.com/ -o skopeo=x.yaml
helm-mirror: 2019/02/05 14:57:55.037049 inspectImages.go:136: error: cannot render chart: render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set
helm-mirror: 2019/02/05 14:57:55.037206 inspectImages.go:93: error: cannot load chart: render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set
helm-mirror: 2019/02/05 14:57:55.037251 inspectImages.go:100: error walking the path "/srv/www/htdocs/kubernetes-charts.suse.com/": render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set
helm-mirror: 2019/02/05 14:57:55.037285 inspectImages.go:62: error: procesing target /srv/www/htdocs/kubernetes-charts.suse.com/: render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set
Error: render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set
Usage:
mirror inspect-images [folder|tgzfile] [flags]

Flags:
-h, --help help for inspect-images
-o, --output string choose an output for the list of images and specify
the file name, if not specified 'images.out' will be the default.
Options:

                    - file: outputs all images to a file
                    - json: outputs all images to a file in JSON format
                    - skopeo: outputs all images to a file in YAML format
                      to be used as source file with the 'skopeo sync' command.
                      For more information refer to the 'skopeo sync'
                      documentation at https://github.com/SUSE/skopeo/blob/sync/docs/skopeo.1.md#skopeo-sync
                    - stdout: prints all images to standard output
                    - yaml: outputs all images to a file in YAML format

                    Usage:

                            - helm mirror inspect-images /tmp/helm --output stdout
                            - helm mirror inspect-images /tmp/helm -o stdout
                            - helm mirror inspect-images /tmp/helm -o file=filename
                            - helm mirror inspect-images /tmp/helm -o json=filename.json
                            - helm mirror inspect-images /tmp/helm -o yaml=filename.yaml
                            - helm mirror inspect-images /tmp/helm -o skopeo=filename.yaml

                     (default "stdout")

Global Flags:
-i, --ignore-errors ignores errors while downloading or processing charts
-v, --verbose verbose output

render error in "cf/templates/tcp-router.yaml": template: cf/templates/tcp-router.yaml:42:28: executing "cf/templates/tcp-router.yaml" at <include (print $.Tem...>: error calling include: template: cf/templates/secrets.yaml:5:29: executing "cf/templates/secrets.yaml" at <required "secrets.CL...>: error calling required: secrets.CLUSTER_ADMIN_PASSWORD has not been set

resource reservations for host system services not applied

Type: Bug

Topic: Resource reservations with velum

Impact: big if out of resources / low as long enough resources available

Description
The resource reservations set in velum are not properly applied to the cluster nodes. The kubelet process does not have the correct parameters.

There is no impact at all as long the nodes have enough resources. But if the situation occurs where pods gather to many resources there is no possibility to analyze the problem because the overloaded node is not reacting anymore. Only chance is to power off the node.

Current behavior
Both, the kube core service and host system service reservations are applied to the kubelet process with --kube-reserved. See this example:

/usr/bin/hyperkube kubelet --logtostderr=true --v=2 --hostname-override=node1 --allow-privileged=true --config=/etc/kubernetes/kubelet-config.yaml --kube-reserved=cpu=500m,memory=1G --kube-reserved=cpu=100m,memory=512M --node-ip=10.10.10.10 --pod-infra-container-image=sles12/pause:1.0.0 --network-plugin=cni --cni-bin-dir=/var/lib/kubelet/cni/bin --cni-conf-dir=/etc/cni/net.d --kubeconfig=/var/lib/kubelet/kubelet-config --volume-plugin-dir=/usr/lib/kubernetes/kubelet-plugins

Expected behavior
The values entered for host system services should be applied with --system-reserved as shown in the example below:

/usr/bin/hyperkube kubelet [...] --kube-reserved=cpu=500m,memory=1G --system-reserved=cpu=100m,memory=512M [...]

portus: documentation is missing lots of information

The documentation for portus on SLE is missing a lot of information.

For starters:

Portus is accessible for SLES customers as a Docker image.

This is missing the location where this Docker image can be pulled: the SUSE Container Registry. Portus 2.4 has been released there as a Docker image and it's based on SLE, so customers shouldn't be pulling from Dockerhub, ever. And they should not be looking at the containers module either.

For more information and documentation about Portus, see: http://port.us.org/docs/deploy.html.

This is true, but it's missing quite a lot of info. The difference between the community and the customer-supported version of the Docker image resides only on the base image and how we build said images (the community version is built on Dockerhub, the customer one on IBS). Besides that, there's no real difference: it's the same code. So, setting up the customer-supported version and maintaining it is exactly the same as doing so with the community image. This part of the documentation should be more clear on this because otherwise, customers can get lost.

Moreover, as explained on this page, we also provide some examples on how to deploy Portus here. Maybe it would be worth it to also write this here.

[doc] 2.5 Scaling the Cluster

2.5 Scaling the Cluster

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_admin/book_caasp_admin.html#sec.admin.scale_cluster

Incorrect:

The default maximum number of nodes in a cluster is 40. The Salt Master configuration needs to be adjusted to handle installation and updating a of larger cluster:

Correct

The default maximum number of nodes in a cluster is 150. The Salt Master configuration needs to be adjusted to handle installation and updating a of larger cluster:

Changing Velum Admin Password

Procedure 1.2: Changing Velum Admin Password

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_admin/book_caasp_admin.html#id5412

docker exec -it $(docker ps -q -f name=ldap) /bin/bash

bash-4.3# slappasswd -n -s password
{SSHA}SSK3rBatmgUNrDmohlOw5JMhVB/vvEcG

bash-4.3# ldappasswd -H ldaps:// -D "cn=admin,dc=infra,dc=caasp,dc=local" \
-w $(cat /var/lib/misc/infra-secrets/openldap-password) \
uid=test,ou=People,dc=infra,dc=caasp,dc=local -s {SSHA}SSK3rBatmgUNrDmohlOw5JMhVB/vvEcG
Result: No such object (32)

Add step for manual node removal

You can try to run this command by replacing the target with the minion-id.

docker exec -ti $(docker ps -q --filter name=salt-master) salt-run
--force-color state.orchestrate orch.removal
pillar='{"target":"87019cb873604c21b94b0f3d91d96369"}'

[doc] 4.2.2.1 kubelet port 10250 not accessible anymore

4.2.2.1 kubelet

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_admin/book_caasp_admin.html#sec.admin.monitoring.health.node.kubelet

curl -i https://localhost:10250/healthz doesn't work anymore

curl -i https://master01.infra.caasp.local:10250/healthz
HTTP/1.1 401 Unauthorized
Date: Thu, 21 Mar 2019 10:33:36 GMT
Content-Length: 12
Content-Type: text/plain; charset=utf-8

Unauthorized

It seems kubelet is now configured with port 10248 (HTTP endpoint).

curl -i http://localhost:10248/healthz
HTTP/1.1 200 OK
Date: Thu, 21 Mar 2019 10:36:24 GMT
Content-Length: 2
Content-Type: text/plain; charset=utf-8

ok

Plan for RBAC explanation documentation

Discussed in Core Platform call 2019-04-09. RBAC documentation is poor. Upstream documentation is confusing and not helpful. Could be an opportunity to set apart CaaS Platform with good docs.

Alternatively: Fix upstream docs.

Need more input for actual use cases and what needs to be described.
Needs prioritization from CaaSP mgmt to get engineers to describe it and develop test cases.

Assigning Roles to the Cluster Nodes with CaaSP v4

5.2.5.11 Assigning Roles to the Cluster Nodes

https://www.suse.com/documentation/suse-caasp-3/singlehtml/book_caasp_deployment/book_caasp_deployment.html#sec.deploy.cloud-init.user-data.caasp-roles

With CaaSP v4, the cluster role does no longer configure a NTP client. Instead the admin has to configure one (either chrony or systemd-timesyncd) with cloud-init himself. NTP syncronisaton across the cluster is required.

The following text needs to be adjusted:
"...and configure a timesync service with administration node as a reference. You do not have to install any NTP server, but if you need to use one, you need to disable the systemd-timesyncd first."

Clarify updating nodes added to an existing cluster

Relates to: #146

We describe adding new nodes into the cluster as replacements for failed
ones. These nodes get installed from installation media. I am unsure if
they update from release/update channels during the update.

It depends on how the nodes are installed.

Media installation

The user installs the node using the v3 installation media. The node
will get all the updated packages only if the customer register it
against SMT/SCC/RMT at installation time.

AutoYaST

We have customers installing nodes using hand-made autoyast profiles.
This is something we don't support. So let's assume they stick to the
supported way and they use the profile we generate on the admin node.

If the admin node is registered against SMT/SCC/RMT then nodes will be
bootstrapped using updates.

Pre-build virtual image

The customer installs everything using a prebuilt qcow image for
example. In this case the node won't have the updates applied.

The only way we officially describe to update nodes is to do that
through velum. Is this a problem at all if we have some "old" nodes with
newer packages? Will Velum manage to bring the new nodes with the
outdated packages up to the same state as the ones from the old cluster?

The customer can install all the updates manually before joining the
node to the cluster. If he doesn't do that he will have to update the
node using Velum's UI.

I would strongly encourage them to either install a node with all the
updates already applied or to update them before assigning a role to
the node. That's because of the usual reboot process and how many things
can go south during that.

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.