GithubHelp home page GithubHelp logo

fourpastmidnight / kubewin Goto Github PK

View Code? Open in Web Editor NEW
2.0 2.0 0.0 99 KB

A PowerShell script module for initializing and joining a Windows Server-based Kubernetes cluster node

License: MIT License

PowerShell 100.00%

kubewin's People

Contributors

fourpastmidnight avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

kubewin's Issues

Refactor docker image building code

Right now, this code lives in the New-WindowsKubernetesClusterNode cmdlet. It's a rather large chunk of code, along with some branching logic. It'd be nice to clean that up and make this section a bit more declarative, leaving the imperative bits in their respective cmdlets.

Make this into a proper module

Make this into a proper module, with a version, a PSD file, and most importantly, with Pester tests using the Gherkin format, from my fork of Pester containing the changes in my open PR to the Pester project.

Add additional optional parameters to New-KubernetesWindowsNodeConfiguration

The New-KubernetesWindowsNodeConfiguration is meant to allow you to store all the options which are required to orchestrate the process of adding a Windows Server kubernetes node to a cluster for versions of Windows Server 2019 that are > 1809/LTSC 2019.

The cmdlet already sets default values for most of the parameters. However, for parameters such as CniPluginVersion and CniVersion, these should not be set to a hard-coded version. Rather, these should be set to latest. Likewise, parameters should be added for the version of GoLang to use, as well as Yq, Git for Windows (for building GoLang), etc. These should all be set to latest. This way, they don't need to be specified--but if for some reason some version needs to be "pinned", it's possible to do so.

Investigate whether building GoLang is necessary

Something is telling me that I don't need to build a custom GoLang image. So long as the resulting image being built (in this case, the flannel DaemonSet image) is based on the same version of Windows Server as the node being configured, that should be enough??

Add options to push created Docker images to a repository, or keep them local on the node

Currently, the script module builds any required docker images locally on the node being configured as a Windows cluster node, as well as updates the flannel-*.yml DaemonSet configuration file and the kube-proxy.yml DaemonSet configuration file.

Update the module to also accept a docker repository to which to push the images, and update the DaemonSet configuration files appropriately. Still maintain the option to build the images locally and keep them locally on the server (by configuring imagePullPolicy: never), as the module currently does.

Allow building images with a specified version of Windows Server base image

Because this script module is currently intended to be run on the server being configured as a Windows Server node, it assumes that the images you want built are for the version of Windows Server on which the script is run.

This may not always be the case. Maybe you want to "pre-build" images ahead of time on another machine? You should be able to specify the version of Windows Server for which you want to build images.

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.