Code Monkey home page Code Monkey logo

minishift-addons's Introduction

Minishift Add-ons

This repository contains add-ons contributed by the Minishift community.

We hope that by sharing these add-ons, folks in the community will be able to make the most out of their Minishift environment. Community add-ons are tested and supported by the community.

Introduction

Minishift add-ons are extensions, or plug-ins, that customize the default OpenShift cluster configuration and behavior. For example, you can use the anyuid add-on to allow authenticated users to run images without a pre-allocated UID, or the registry-route add-on to expose the OpenShift registry as a route.

Minishift includes several default add-ons, which are installed automatically when you first start Minishift. These add-ons are tested and supported by the Minishift core team. You can also write your own custom add-ons that use any of the supported add-on commands.

Share your add-ons with the community

You are invited to share your add-ons with the Minishift community by submitting them to this repository. To submit your add-on, follow the contribution guidelines to open a new issue and submit a pull request.

Community add-ons are not officially supported by the Minishift core team, although the core developers do their best to help out when reviewing and merging new add-ons to this repository. The community is encouraged to help contributors by testing and improving these add-ons.

Download and use community add-ons

To use any of the add-ons from this repository in your Minishift environment:

  1. Clone the repository to your local machine.

  2. Install the add-on that you want to use by running the following command:

    $ minishift addons install <path_to_addon>
  3. Choose whether to apply the add-on to a running Minishift VM or enable the add-on to start each time that Minishift starts.

    • To apply the add-on once to a running Minishift VM, run the following command:

      $ minishift addons apply <addon-name>
    • To enable the add-on to start each time that Minishift starts, run the following command:

      $ minishift addons enable <addon-name>

For more information about enabling, disabling, and applying add-ons, see the Add-ons topic in the Minishift documentation.

CI Setup

minishift-addons uses CentOS CI as CI build server. A pull request build job will be triggered for every pull request. However, the build job runs the integration tests only when the pull request contains any change related to add-on. Also, a nightly job runs daily at midnight. It execute all available add-on integration tests against the master branch of the minishift-addons GitHub repository with CentOS ISO.

Contact the Minishift community

Minishift is an open-source project dedicated to developing and supporting Minishift. Contributions, questions, and comments are all welcomed and encouraged!

You can reach the Minishift community by:

minishift-addons's People

Contributors

bgulla avatar coolbrg avatar davidkarlsen avatar durandom avatar eriknelson avatar gbraad avatar hferentschik avatar huntley avatar jemacom avatar jorgemoralespou avatar jpechane avatar jpinkney avatar jstrachan avatar kadel avatar kameshsampath avatar kowen-rh avatar l0rd avatar lalatendumohanty avatar liangxia avatar matzew avatar sabre1041 avatar thatdocslady avatar veermuchandi 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

minishift-addons's Issues

Provide CI to test minishift add-ons

The minishift team could provide infrastructure to run CI against all provided add-ons.

The responsibilities would be

  • minishift team to provide the infra
  • addon owners to provide the tests

Need a test framework to write tests for the add-ons

The end goal is we should be able to test these add-ons against specific OpenShift and Minishift versions. Contributors should be able to contribute a test file which would test the add-on. Also we should be able to test these add-ons for each Minishift release in an automated way.

This way we can maintain the quality of the repository and it will enable us to keep the add-ons in good shape.

apply kube-dashboard - "deploy" is deprecated

From shell:
minishift addon apply kube-dashboard
-- Applying addon 'kube-dashboard':........Command "deploy" is deprecated, Use the rollout latest and rollout cancel commands instead.
.error: Deployment config "dashboard" waiting on manual update (use 'oc rollout latest dashboard')
Error applying the add-on: Error executing command 'oc rollout status dc/dashboard -n kube-dashboard'.

Minishift version: minishift v1.13.1+75352e5
System Version: macOS 10.13.2 (17C88)

Following worked:
-oc deploy dashboard -n kube-dashboard
+oc rollout latest dashboard -n kube-dashboard

Option to have addtional commands in addons

Right now the command set that can be used in the addon file is limited to ssh, docker, oc etc., it will be great if we can add option to add extra commands like curl, wget, git etc.,

Che Minishift addon out of the box is broken

Che Minishift addon doesn't deploy Che properly.
I believe it is related to the fact that upstream Che switched Che 5 and Che 6 branches and now Che 6 is in master whereas Che Minishift addon expects it to be Che 5.
Here is the image declaration that is built by CI from master right now https://github.com/minishift/minishift-addons/blob/master/add-ons/che/templates/che-single-user.yml#L27.
Also, as @l0rd suggested we need a CI to fix a situation where Che addon is broken and devs don't know about that.

Broken links in READMEs of individual addons

For example in cockpit/README.md there is a link to general readme, however this link is broken:

https://github.com/minishift/minishift-addons/blob/master/Readme.adoc#download-and-use-community-add-ons

Instead the README should be in upper case in the link to work:

https://github.com/minishift/minishift-addons/blob/master/README.adoc#download-and-use-community-add-ons

Support for Addon Dependency

Currently the addon can't depend on another addon, it will be nice to add the add on dependency so that we can specify them via the addo scripts using include my-addon or when doing install i can add --dependencies='addon-a,addon-b' etc.,

Add a add-on template for contributor

It would be good to have a ready add-on template where contributor will just fill his details quickly.

It will reduce review comments like you need install section etc etc IMO.

I am thinking as

= {Name} Add-on
# Few lines of description for add-on

== Prepare Minishift [Optional]
# Maybe your add-on need Minishift to be run with extra configurations  

== Install add-on
# Steps to install add-on

== Apply {Name}
# Steps to apply your add-on

== Prerequisite steps for add-on [Optional]
# If your add-on required any steps to be performed before like Github integration etc.

== Remove {Name}
# Steps to remove your add-on

== Uninstall {Name} add-on [Optional]
# Steps to uninstall add-on

Asciidoc or Markdown for READMEs?

Currently, we are have all existing add-on README's in markdown(.md) format.
However, our project README and contributing doc are in Asciidoc(.adoc).

Few PRs are there whose README are in Asciidoc - See Istio PR and in Markdown - See Ansible Service Broker PR.

We need to decide a consistent format here.

/cc @minishift/minishift-dev

Remove empty required vars in management-infra add-on

With that empty line minishift would throw the error

❯ minishift addon apply management-infra

-- Applying addon 'management-infra':Error applying the add-on: The variable(s)  are required by the add-on, but are not defined in the context

Enhance Istio Addon

Istio add-on to be enhanced for supporting Initialisers, this includes the following steps:

  1. Update the master-config.yaml to add Initializers plugin
(...)
admissionConfig:
  pluginConfig:
    GenericAdmissionWebhook:
      configuration:
        apiVersion: v1
        disable: false
        kind: DefaultAdmissionConfig
      location: ""
    Initializers:
      configuration:
        apiVersion: v1
        disable: false
        kind: DefaultAdmissionConfig
      location: ""
(...)
  1. Enable Initializers API via apis/admissionregistration.k8s.io/v1alpha1=true ( this is by default with OpenShift), but good to check
  2. Diable Istio for router and registry in default ns
oc annotate dc docker-registry sidecar.istio.io/inject='false' -n default
oc annotate dc router sidecar.istio.io/inject='false' -n default
  1. Add cluster-admin role to istio-initializer-service-account in istio-system namespace to allow edit/watch Deployments

Error reapplying prometheus add-on after deletion

Hi @jorgemoralespou ,

I am getting some error on re-applying prometheus add-on after deleting it with provided command.

$ minishift addons apply prometheus --addon-env namespace=kube-system
-- Applying addon 'prometheus':.......
You have installed prometheus
To access prometheus go to https://prometheus-kube-system.192.168.42.141.nip.io

To delete:
    oc delete sa,clusterrolebinding,route,svc,secret,deployment,configmap -l app=prometheus -n kube-system --as=system:admin

$ oc delete sa,clusterrolebinding,route,svc,secret,deployment,configmap -l app=prometheus -n kube-system --as=system:admin
serviceaccount "prometheus" deleted
clusterrolebinding "prometheus-cluster-reader" deleted
service "prometheus" deleted
secret "prometheus-proxy" deleted
secret "prometheus-tls" deleted
deployment "prometheus" deleted
configmap "prometheus" deleted

$ minishift addons apply prometheus --addon-env namespace=kube-system
-- Applying addon 'prometheus':.    error: routes.route.openshift.io "prometheus" already exists
Error applying the add-on: Error executing command oc new-app -f prometheus.yaml -p NAMESPACE=#{namespace} -n #{namespace}.

Any idea?

Fix RAM size in fabric8 add-on usage guide

The RAM size as mentioned in fabric8 usage guide is 5 GB and the command below

$ minishift start --memory=5000 --cpus=5 --disk-size=50g

uses 5000 which get printed as 4GB as per new pre-flight startup logs.

$ minishift start --memory 5000 --cpus=5 --disk-size=40g
-- Installing default add-ons ... OK
-- Checking if KVM driver is installed ... 
   Driver is available at /usr/local/bin/docker-machine-driver-kvm ... OK
-- Starting local OpenShift cluster using 'kvm' hypervisor ...
-- Minishift VM will be configured with ...
   Memory:    4 GB
   vCPUs :    5
   Disk size: 40 GB

Tag repository with minishift version

We should tag/branch this repository when a minishift version happens so we can keep compatibility between the addons here provided and the minishift versions.

At some point in time we might want to provide 2 different versions of an addon, to support old minishift versions (CDK) and new minishift versions that provide new features (e.g. multiline descriptions in 1.5.0 that do not work in previous releases).

New add-on to provide .NET Core imagestreams and templates

Related to: minishift/minishift#1819

$ oc create --namespace openshift -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/dotnet_imagestreams.json
$ oc create --namespace openshift -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/templates/dotnet-example.json 
$ oc create --namespace openshift -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/templates/dotnet-runtime-example.json 
$ oc create --namespace openshift -f https://raw.githubusercontent.com/redhat-developer/s2i-dotnetcore/master/templates/dotnet-pgsql-persistent.json

Check current minishift config when enabling/applying che addon.

We are suggesting user to increase minishift memory to 5GB before enabling/applying che addon (in readme?).
It would be nice, if "minishift addon enable che" would check current minishift config and if it is below 5GB, it would print message like:

Che addon required at least 5GB RAM of minishift virtual machine. Your current config is at 2GB. Do you want to increase this to 5GB? [y/n]

Or at least print how it could be done.

Che addon is failing with OpenShift 3.7.0

With OpenShift 3.6.0

$ minishift status
Minishift:  Running
Profile:    os_360
OpenShift:  Running (openshift v3.6.0+c4dd4cf)
DiskUsage:  11% of 17.9G

$ minishift addons apply che
-- Applying addon 'che':
[CHE] Create Image Stream.
[CHE] Create the Che server Template.
[CHE] Creating mini-che project.
[CHE] Switching to mini-che....
[CHE] Deploying Che on minishift.
Please wait while the pods all startup!
You can watch in the OpenShift console via:
  minishift console
Then you should be able the open the Che dashboard here:
  http://che-mini-che.192.168.42.21.nip.io

With OpenShift 3.7.0

$ minishift status
Minishift:  Running
Profile:    os_370
OpenShift:  Running (openshift v3.7.0+7ed6862)
DiskUsage:  8% of 17.9G

$ minishift addon apply che
-- Applying addon 'che':
[CHE] Create Image Stream.
[CHE] Create the Che server Template.
[CHE] Creating mini-che project.Error from server (Forbidden): You may not request a new project via this API.
Error applying the add-on: Error executing command oc new-project mini-che --description="Eclipse Che on minishift" --as=developer.

Validating Requirements for add-on

When installing some addons we might have some pre-req like 4GB of RAM, 4 CPUS etc., it will be great if we can add option via metadata file or something so that when installing the addon the developer might know what the pre-req

Add CORS add-on

Configures OpenShift to allow cross-origin requests from any address

update asb add-on for OpenShift 3.7.1

https://github.com/minishift/minishift-addons/tree/master/add-ons/ansible-service-broker . Refer #76

  • Update template to pull most recent template
  • Pull templates from the upstream repo to ensure things stay up to
    date.
  • Added an additional template that will permit the developer user
    correctly so that it can support apb cli functionality.
  • Removed unnecessary templates/
  • Added updated docs now that this README.md is considered the golden
    source for documenting running the broker and its tooling with minishift

Provide a Debezium add-on

Debezium is an opensource project for change data capture using a Kafka broker as a message bus. We would like to enable users to easily start and try Debezium

Add KubeVirt add-on

KubeVirt is a project to run Virtual Machines on Kubernetes and OpenShift.

KubeVirt can already be deployed on minikube, and a next step is to also get it running on OpenShift. it should then be provided as an add-on to minishift to make sure that it can be easily tested.

Things to be fixed

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.