Giter Site home page Giter Site logo

imusmanmalik / cluster-api-provider-maas Goto Github PK

View Code? Open in Web Editor NEW

This project forked from spectrocloud/cluster-api-provider-maas

0.0 1.0 0.0 337 KB

Cluster API Provider for MAAS (https://maas.io/)

License: Apache License 2.0

Shell 4.82% Go 89.57% Makefile 3.96% Dockerfile 1.65%

cluster-api-provider-maas's Introduction

Cluster-API-Provider-MAAS

Cluster API Provider for Canonical Metal-As-A-Service maas.io

You're welcome to join the upcoming webinar for capmaas!

Getting Started

Public Images

Spectro Cloud public images

Kubernetes Version URL
1.25.6 https://maas-images-public.s3.amazonaws.com/u-2204-0-k-1256-0.tar.gz
1.26.1 https://maas-images-public.s3.amazonaws.com/u-2204-0-k-1261-0.tar.gz

Custom Image Generation

Refer image-generation/

Hello world

  • Create kind cluster
kind create cluster --name=maas-cluster
# MAAS access endpoint and key
MAAS_API_KEY: <maas-api-key>
MAAS_ENDPOINT: http://<maas-endpoint>/MAAS
MAAS_DNS_DOMAIN: maas.domain

# Cluster configuration
KUBERNETES_VERSION: v1.26.4
CONTROL_PLANE_MACHINE_IMAGE: custom/u-2204-0-k-1264-0
CONTROL_PLANE_MACHINE_MINCPU: 4
CONTROL_PLANE_MACHINE_MINMEMORY: 8192
WORKER_MACHINE_IMAGE: custom/u-2204-0-k-1264-0
WORKER_MACHINE_MINCPU: 4
WORKER_MACHINE_MINMEMORY: 8192

# Selecting machine based on resourcepool (optional) and machine tag (optional)
CONTROL_PLANE_MACHINE_RESOURCEPOOL: resorcepool-controller
CONTROL_PLANE_MACHINE_TAG: hello-world
WORKER_MACHINE_RESOURCEPOOL: resourcepool-worker
WORKER_MACHINE_TAG: hello-world
  • Initialize infrastructure
clusterctl init --infrastructure maas:v0.5.0
  • Generate and create cluster
clusterctl generate cluster t-cluster --infrastructure=maas:v0.5.0 --kubernetes-version v1.26.4 --control-plane-machine-count=1 --worker-machine-count=3 | kubectl apply -f -

Developer Guide

  • Create kind cluster
kind create cluster --name=maas-cluster
  • Install clusterctl v1 depending on the version you are working with

  • Makefile set IMG=

  • Run

make docker-build && make docker-push
  • Generate dev manifests
make dev-manifests
  • Move _build/dev/ directory contents to ~/.clusterapi/overrides v0.5.0 depending on version you are working with
.
├── clusterctl.yaml
├── overrides
│   ├── infrastructure-maas
│       └── v0.5.0
│           ├── cluster-template.yaml
│           ├── infrastructure-components.yaml
│           └── metadata.yaml
└── version.yaml

  • Run
clusterctl init --infrastructure maas:v0.5.0

Install CRDs

v1beta1 v0.5.0 release

  • Generate cluster using
clusterctl generate cluster t-cluster  --infrastructure=maas:v0.5.0 | kubectl apply -f -

or

clusterctl generate cluster t-cluster --infrastructure=maas:v0.5.0 --kubernetes-version v1.26.4 > my_cluster.yaml
kubectl apply -f my_cluster.yaml

or

clusterctl generate cluster t-cluster --infrastructure=maas:v0.5.0 --kubernetes-version v1.26.4 --control-plane-machine-count=1 --worker-machine-count=3 > my_cluster.yaml
kubectl apply -f my_cluster.yaml

cluster-api-provider-maas's People

Contributors

saamalik avatar sadysnaat avatar amitsahastra avatar jzhoucliqr avatar zulfilee avatar jayesh-srivastava avatar tylergillson avatar imusmanmalik avatar abhinavnagaraj avatar prathabk avatar seemadurrani avatar roshanirathi avatar

Watchers

 avatar

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.