Visas to Canada are not required by passport holders from Canada, USA or residents of St. Pierre and Miquelon with a valid French passport.
An ETA is required by the following nationalities;
Andorra, Antigua and Barbuda, Australia, Austria, Bahamas, Barbados, Belgium, Brunei, Chile, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Holy See, Hong Kong, Hungary, Iceland, Ireland, Israel, Italy, Japan, Latvia, Lithuania, Liechtenstein, Luxembourg, Malta, Mexico, Monaco, Netherlands, New Zealand, Norway, Papua New Guinea, Poland, Portugal, Samoa, San Marino, St. Kitts and Nevis, St. Lucia, St. Vincent, San Marino, Singapore, Slovakia, Slovenia, Solomon Islands, South Korea, Spain, Sweden, Switzerland and Taiwan.
Holders of a United states green card or permanent residence can also enter with an ETA.
An ETA costs CAD$7
Canada Visa information
Canadian embassies and consulates
Foreign embassies and consulates in Canada