Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
e6179612
Commit
e6179612
authored
Feb 28, 2019
by
Darren Shepherd
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add rebase instructions
parent
030017fc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
82 deletions
+34
-82
README.md
README.md
+34
-82
No files found.
README.md
View file @
e6179612
...
...
@@ -6,96 +6,48 @@
Kubernetes without the features I don't care about.
Some of the removed features
Rebase Instructions
-------------------
*
OpenAPI/Swagger
*
cloud-controller-manager
*
kube aggregation
*
APIs (NOTE: most of these are old APIs that have been replaced)
*
admissionregistration/v1alpha1, authentication/v1beta1, authorization/v1beta1, certificates/v1beta1, events/v1beta1, imagepolicy/v1alpha1, rbac/v1alpha1, settings/v1alpha1, storage/v1alpha1,
*
Authentication
*
bootstrap token, oidc
*
Authorization
*
ABAC
*
All alpha features
*
Cloud Providers (all of them)
*
Controllers
*
Bootstrap
*
Certificates
*
Cloud
*
Cloud based node IPAM
*
Route
*
Credential Providers AWS/GCP/Azure/Rancher
*
Kubelet
*
Device Plugin
*
Certificates
*
Checkpoint
*
Device Manager
*
Custom Metrics
*
Dockershim (IMPORTANT: No docker support, the only runtime that works in containerd)
*
GPU
*
Mount Pod
*
Network
*
Hairpin
*
Kubenet
*
rkt
*
Volume Drivers
*
aws_ebs, azure_dd, azure_file, cephfs, cinder, fc, flocker, gce_pd, glusterfs, iscsi, photon_pd, portworx, quobyte, rbd, scaleio, storageos, vsphere_volume
*
Admission Controllers
*
admin, alwayspullimages, antiaffinity, defaulttolerationseconds, deny, eventratelimit, exec, extendedresourcetoleration, gc, imagepolicy, initialreosurces, limitranger, namespace, noderestriction, persistentvolume, podnodeselector, podpreset, podtolerationrestriction, priority, resourcequota, security, securitycontext, storageobjectinuseprotection
## Patch rebase
What is left? A lot. Basically all your normal pod/deployment/service stuff is there. Most apps for kubernetes will run just fine.
These are instructions for rebasing a patch version. For example if the current
k3s k8s version is v1.13.3 and v1.13.4 comes out these are the procedures on how
to rebase and create a new release. If v1.14 comes out that procedure is different.
Full Build
----------
# Setup your GOPATH. Note that this code should be at k8s.io/kubernetes in your GOPATH, not github.com/ibuildthecloud/k3s
go build -o kubectl ./cmd/kubectl
go build -o hyperkube ./cmd/hyperkube
Now just run hyperkube as you normally would.
Super Opinionated Approach that probably won't work for you
-----------------------------------------------------------
# Setup your GOPATH. Note that this code should be at k8s.io/kubernetes in your GOPATH, not github.com/ibuildthecloud/k3s
go build -o k3s
go build -o kubectl ./cmd/kubectl
Run
---
Run containerd
The below instructions will use the example of rebasing from v1.13.3 to v1.13.4.
For git commands the remote
`rancher`
is github.com/rancher/k3s and the remote
`upstream`
refers to github.com/kubernetes/kubernetes
*
Create a branch in github.com/rancher/k3s called k3s-${VERSION} that is branched
from the upstream tag ${VERSION}.
```
bash
# Download and install containerd and runc
sudo
curl
-fL
-o
/usr/local/bin/runc https://github.com/opencontainers/runc/releases/download/v1.0.0-rc5/runc.amd64
sudo chmod
+x /usr/local/bin/runc
curl
-fsL
https://github.com/containerd/containerd/releases/download/v1.1.1/containerd-1.1.1.linux-amd64.tar.gz |
sudo tar
xvf /usr/src/containerd.tgz
-C
/usr/local/bin bin/
--strip-components
=
1
# Some CNI
sudo mkdir
-p
/opt/cni/bin
curl
-fsL
https://github.com/containernetworking/plugins/releases/download/v0.7.1/cni-plugins-amd64-v0.7.1.tgz |
sudo tar
xvzf -
-C
/opt/cni/bin ./loopback
sudo
containerd &
VERSION
=
v1.13.4
git fetch upstream
git checkout
-b
k3s-
${
VERSION
}
${
VERSION
}
git push rancher k3s-
${
VERSION
}
```
Run Kubernetes
*
Start rebase
```
bash
# Server
./k3s
# Agent (If doing this on another host copy the ./data folder)
sudo
./k3s agent
# Install Networking
export
KUBECONFIG
=
./data/cred/kubeconfig.yaml
curl
-s
"https://cloud.weave.works/k8s/net?k8s-version=
$(
./kubectl version |
base64
|
tr
-d
'\n'
)
"
| ./kubectl apply
-f
-
OLD_VERSION
=
v1.13.3
VERSION
=
v1.13.4
git fetch rancher
git checkout k3s-
${
VERSION
}
git reset
--hard
rancher/k3s-
${
OLD_VERSION
}
git rebase
-i
${
VERSION
}
```
*
When presented with the patch edit screen you want to drop an commit titled
"Update Vendor" or a version commit like "v1.13.3-k3s.6"
*
Continue rebase and resolve any conflicts.
*
Run the below to update vendor and apply tag
Your kubeconfig file is in
`./data/cred/kubeconfig.yaml`
```
bash
VERSION
=
v1.13.4
./deps
&&
./tag.sh
${
VERSION
}
-k3s
.1
```
Enjoy.
*
Update the README.md with anything that might have changed in the procedure
*
Put in PR to github.com/rancher/k3s k3s-${VERSION} branch
*
After merge apply ${VERSION}-k3s.1 tag in github then vendor into k3s
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment